×î½ü·´¸´Ñо¿ÈÕ³£¾µä±ØÓõöandroid
app£¬´ÓÖ÷½çÃæ´øÀ´µÄ½»»¥·½Ê½ÈëÊÖ½øÐзÖÎö£¬ÎÒ½«Æä´óÖ·ÖΪÈýÀà¡£½ñÌì¼Ç¼µÚÒ»ÖÖ·½Ê½£¬¼´Ö÷½çÃæÏÂÃæÓм¸¸ötabÒ³£¬×îÉ϶ËÊDZêÌâÀ¸£¬tabÒ³ºÍtabÒ³Ö®¼ä²»ÊÇͨ¹ý»¬¶¯Çл»µÄ£¬¶øÊÇͨ¹ýµã»÷Çл»tabÒ³¡£ÔçÆÚÕâÖּܹ¹Ò»Ö±ÊÇʹÓÃtabhost+activitygroupÀ´Ê¹Óã¬Ëæ×ÅfragmentµÄ³öÏÖ¼°google¹Ù·½Ò²´óÁ¦ÍƼöʹÓÃfragment£¬ºóÕß´óÓдúÌæÇ°ÕßÖ®ÊÆ¡£±¾ÎÄҲʹÓÃfragment½øÐд£¬±êÌâÖеġ°¾µä¡±Ö¸ÕâÖÖ½»»¥¾µä£¬·Ç±¾ÎĵĴúÂë¿ò¼Ü½á¹¹£¬»¶Ó´ó¼ÒÌá³öÖ¸³ö²»×㣬°ïÖúÍêÉÆ¡£ÎÄÖеÄfragment²¿·Ö²Î¿¼Á˹ùÉñµÄ²©ÎÄ(Á´½Ó1
Á´½Ó2 Á´½Ó3)£¬´úÂëÒ²ÊÇÔÚ¹ùÉñ´úÂë»ù´¡ÉϼÓÈëÁË×Ô¼º¶Ô¿ò¼ÜµÄÀí½â¡£
ÔÙ´ÎÖØÉêÏÂÕâÖÖÖ÷½çÃæ½»»¥µÄÌØµã:1,¶à¸ötab£¬²»ÄÜ»¬¶¯Çл»Ö»Äܵã»÷Çл»£»2£¬ÉÏÓбêÌâÀ¸¡£ÕâÖÖģʽҲÊÇĿǰappÖÐʹÓÃ×î¶àµÄ¡£Èçqq¡¢°Ù¶ÈÔÆÅÌ¡¢ÕÐÉÌÒøÐС¢Î¢²©¡¢Ö§¸¶±¦¡£¼¸¸öÔÂǰ֧¸¶±¦»¹ÊÇÄÜ»¬¶¯Çл»µÄ£¬ºóÀ´È¡ÏûÁË¡£ÊÓͼÈçÏÂ:





ÏÂÃæ±¾ÎĴӵײ¿¿ØÖÆÀ¸¡¢¶¥²¿¿ØÖÆÀ¸¼°ÖмäµÄÄÚÈÝÏÔÊ¾ÔØÌåfragmentÈý²¿·ÖÐðÊö¡£
Ò»¡¢µ×²¿¿ØÖÆÀ¸
µ×²¿¿ØÖÆÀ¸Àïÿ¸ö¿Ø¼þ¶¼²»Êǵ¥Ò»»ù´¡¿Ø¼þ£¬ÉÏÃæÊÇͼƬ¡¢ÏÂÃæÊÇÎÄ×Ö£¬ÓÒÉϽÇÊǺìµã£¬µ±ÓиüÐÂʱºìµãÏÔʾ£¬·ñÔòÒþ²Ø¡£ÁíÍâÏñqqµÄÓÒÉϽǻ¹ÄÜÏÔʾδ¶ÁÏûÏ¢µÄ¸öÊý£¬ÎҵIJο¼Á´½ÓÀïÊÇͨ¹ý´óÁ¿µÄlayoutÒ»µãÒ»µã´î³öÀ´µÄ£¬ÕâÑùµÄºÃ´¦ÊÇ·½±ã¿ØÖƱȽÏÖ±¹Û£¬ÁíÍâÊÇ¿ÉÒÔÀûÓÃLinearlayoutÀïµÄlayout_weightÕâ¸öÊôÐÔ£¬Èõײ¿µÄÕâЩitem¾ùÔÈ·Ö²¼£¬È±µãÊÇ´úÂëÉÏÓкܶàÖØ¸´£¬Î¬»¤ÆðÀ´²»·½±ã¡£¼ÈÈ»ÊÇÕûÀíappµÄͨÓÃÄ£°å¿ò¼Ü£¬Òò´ËÎÒ½«Ã¿¸öitemÊÓΪһ¸ö¶ÔÏó£¬È»ºó½«Æä·ÅÔڵײ¿¾ÍokÁË¡£±¾´úÂëÀïÖ»·â×°ÁËÉÏÃæÊÇͼƬÏÂÃæÊÇÎÄ×Ö£¬ÓÒÉϽǵĺìµãôÓзâ×°½øÀ´¡£
ImageText.java¾Í×÷ÁËÕâÑùÒ»¼þÊÂ:
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.ui;
package org.yanzi.ui;
import org.yanzi.constant.Constant;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.fragmentproject.R;
public class ImageText extends LinearLayout{
private Context mContext = null;
private ImageView mImageView = null;
private TextView mTextView = null;
private final static int DEFAULT_IMAGE_WIDTH = 64;
private final static int DEFAULT_IMAGE_HEIGHT = 64;
private int CHECKED_COLOR = Color.rgb(29, 118, 199); //Ñ¡ÖÐÀ¶É«
private int UNCHECKED_COLOR = Color.GRAY; //×ÔÈ»»ÒÉ«
public ImageText(Context context) {
super(context);
// TODO Auto-generated constructor stub
mContext = context;
}
public ImageText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
mContext = context;
LayoutInflater inflater = (LayoutInflater)
mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View parentView = inflater.inflate
(R.layout.image_text_layout, this, true);
mImageView = (ImageView)findViewById(R.id.image_iamge_text);
mTextView = (TextView)findViewById(R.id.text_iamge_text);
}
public void setImage(int id){
if(mImageView != null){
mImageView.setImageResource(id);
setImageSize(DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT);
}
}
public void setText(String s){
if(mTextView != null){
mTextView.setText(s);
mTextView.setTextColor(UNCHECKED_COLOR);
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
return true;
}
private void setImageSize(int w, int h){
if(mImageView != null){
ViewGroup.LayoutParams params = mImageView.getLayoutParams();
params.width = w;
params.height = h;
mImageView.setLayoutParams(params);
}
}
public void setChecked(int itemID){
if(mTextView != null){
mTextView.setTextColor(CHECKED_COLOR);
}
int checkDrawableId = -1;
switch (itemID){
case Constant.BTN_FLAG_MESSAGE:
checkDrawableId = R.drawable.message_selected;
break;
case Constant.BTN_FLAG_CONTACTS:
checkDrawableId = R.drawable.contacts_selected;
break;
case Constant.BTN_FLAG_NEWS:
checkDrawableId = R.drawable.news_selected;
break;
case Constant.BTN_FLAG_SETTING:
checkDrawableId = R.drawable.setting_selected;
break;
default:break;
}
if(mImageView != null){
mImageView.setImageResource(checkDrawableId);
}
}
}
</span> |
¶ÔÓ¦µÄ²¼¾Ö:
<span style="font-family:Comic Sans MS;font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<ImageView android:id="@+id/image_iamge_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/text_iamge_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </LinearLayout></span> |
´úÂëÀïÓõ½ÁËConstant.java£¬ÕâÀïÃæ·ÅµÄ¶¼Êdz£Á¿£º
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.constant; public class Constant { //BtnµÄ±êʶ public static final int BTN_FLAG_MESSAGE = 0x01; public static final int BTN_FLAG_CONTACTS = 0x01 << 1; public static final int BTN_FLAG_NEWS = 0x01 << 2; public static final int BTN_FLAG_SETTING = 0x01 << 3; //FragmentµÄ±êʶ public static final String FRAGMENT_FLAG_MESSAGE = "ÏûÏ¢"; public static final String FRAGMENT_FLAG_CONTACTS = "ÁªÏµÈË"; public static final String FRAGMENT_FLAG_NEWS = "ÐÂÎÅ"; public static final String FRAGMENT_FLAG_SETTING = "ÉèÖÃ"; public static final String FRAGMENT_FLAG_SIMPLE = "simple"; } </span> |
µÚÒ»ÅÅÊǸ´ºÏButtonµÄ±êʶ£¬ÏÂÃæµÄstringÀàÐ͵ÄÊǽ«À´´´½¨fragmentµÄ±êʶ¡£
Íê³ÉÁËImageTextÖ®ºó£¬ÏÂÃæ¾ÍÊǽ«4¸öÕâÑùµÄ¿Ø¼þ·Åµ½Ò»¸ö²¼¾ÖÀΪÁË¿ØÖÆ·½±ã£¬ÎÒÃǽ«µ×²¿À¸³éÏóΪһ¸ö¶ÔÏóBottomControlPanel.java£¬ÕâÑùÔÚά»¤µ×²¿À¸Ïà¹ØÄÚÈÝʱֱ½ÓÕÒËû¾ÍÐÐÁË¡£BottomControlPanel¼Ì³Ð×ÔRelativeLayout£¬ÏÈÀ´¿´ËüµÄ²¼¾Ö:
bottom_panel_layout.xml
<span style="font-family:Comic Sans MS;font-size:18px;">
<?xml version="1.0" encoding="utf-8"?> <org.yanzi.ui.BottomControlPanel xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" android:gravity="center_vertical" android:paddingLeft="20dp" android:paddingRight="20dp" > <org.yanzi.ui.ImageText android:id="@+id/btn_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> <org.yanzi.ui.ImageText android:id="@+id/btn_contacts" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/btn_message" /> <org.yanzi.ui.ImageText android:id="@+id/btn_news" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/btn_contacts" /> <org.yanzi.ui.ImageText android:id="@+id/btn_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" /> </org.yanzi.ui.BottomControlPanel></span> |
¶ÔÓ¦µÄjavaÎļþ:BottomControlPanel.java
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.ui; import java.util.ArrayList; import java.util.List; import org.yanzi.constant.Constant; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.RelativeLayout; import com.example.fragmentproject.R; public class BottomControlPanel extends RelativeLayout implements View.OnClickListener { private Context mContext; private ImageText mMsgBtn = null; private ImageText mContactsBtn = null; private ImageText mNewsBtn = null; private ImageText mSettingBtn = null; private int DEFALUT_BACKGROUND_COLOR = Color.rgb(243, 243, 243);
//Color.rgb(192, 192, 192) private BottomPanelCallback mBottomCallback = null; private List<ImageText> viewList = new ArrayList<ImageText>(); public interface BottomPanelCallback{ public void onBottomPanelClick(int itemId); } public BottomControlPanel(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onFinishInflate() { // TODO Auto-generated method stub mMsgBtn = (ImageText)findViewById(R.id.btn_message); mContactsBtn = (ImageText)findViewById(R.id.btn_contacts); mNewsBtn = (ImageText)findViewById(R.id.btn_news); mSettingBtn = (ImageText)findViewById(R.id.btn_setting); setBackgroundColor(DEFALUT_BACKGROUND_COLOR); viewList.add(mMsgBtn); viewList.add(mContactsBtn); viewList.add(mNewsBtn); viewList.add(mSettingBtn); } public void initBottomPanel(){ if(mMsgBtn != null){ mMsgBtn.setImage(R.drawable.message_unselected); mMsgBtn.setText("ÏûÏ¢"); } if(mContactsBtn != null){ mContactsBtn.setImage(R.drawable.contacts_unselected); mContactsBtn.setText("ÁªÏµÈË"); } if(mNewsBtn != null){ mNewsBtn.setImage(R.drawable.news_unselected); mNewsBtn.setText("ÐÂÎÅ"); } if(mSettingBtn != null){ mSettingBtn.setImage(R.drawable.setting_unselected); mSettingBtn.setText("ÉèÖÃ"); } setBtnListener(); } private void setBtnListener(){ int num = this.getChildCount(); for(int i = 0; i < num; i++){ View v = getChildAt(i); if(v != null){ v.setOnClickListener(this); } } } public void setBottomCallback(BottomPanelCallback bottomCallback){ mBottomCallback = bottomCallback; } @Override public void onClick(View v) { // TODO Auto-generated method stub initBottomPanel(); int index = -1; switch(v.getId()){ case R.id.btn_message: index = Constant.BTN_FLAG_MESSAGE; mMsgBtn.setChecked(Constant.BTN_FLAG_MESSAGE); break; case R.id.btn_contacts: index = Constant.BTN_FLAG_CONTACTS; mContactsBtn.setChecked(Constant.BTN_FLAG_CONTACTS); break; case R.id.btn_news: index = Constant.BTN_FLAG_NEWS; mNewsBtn.setChecked(Constant.BTN_FLAG_NEWS); break; case R.id.btn_setting: index = Constant.BTN_FLAG_SETTING; mSettingBtn.setChecked(Constant.BTN_FLAG_SETTING); break; default:break; } if(mBottomCallback != null){ mBottomCallback.onBottomPanelClick(index); } } public void defaultBtnChecked(){ if(mMsgBtn != null){ mMsgBtn.setChecked(Constant.BTN_FLAG_MESSAGE); } } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { // TODO Auto-generated method stub super.onLayout(changed, left, top, right, bottom); layoutItems(left, top, right, bottom); } /**×î×ó±ßºÍ×îÓұߵÄviewÓÉĸ²¼¾ÖµÄpadding½øÐпØÖÆÎ»Öá£
ÕâÀïÐè¶ÔµÚ2¡¢3¸öviewµÄλÖÃÖØÐÂÉèÖà * @param left * @param top * @param right * @param bottom */ private void layoutItems(int left, int top, int right, int bottom){ int n = getChildCount(); if(n == 0){ return; } int paddingLeft = getPaddingLeft(); int paddingRight = getPaddingRight(); Log.i("yanguoqi", "paddingLeft = " + paddingLeft + " paddingRight = " + paddingRight); int width = right - left; int height = bottom - top; Log.i("yanguoqi", "width = " + width + " height = " + height); int allViewWidth = 0; for(int i = 0; i< n; i++){ View v = getChildAt(i); Log.i("yanguoqi", "v.getWidth() = " + v.getWidth()); allViewWidth += v.getWidth(); } int blankWidth = (width - allViewWidth - paddingLeft - paddingRight) / (n - 1); Log.i("yanguoqi", "blankV = " + blankWidth ); LayoutParams params1 = (LayoutParams) viewList.get(1).getLayoutParams(); params1.leftMargin = blankWidth; viewList.get(1).setLayoutParams(params1); LayoutParams params2 = (LayoutParams) viewList.get(2).getLayoutParams(); params2.leftMargin = blankWidth; viewList.get(2).setLayoutParams(params2); } } </span> |
ÔÚonFinishInflate()º¯ÊýÀïʵÀý»¯ÀïÃæµÄ×ÓÔªËØ£¬ÔÚinitBottomPanel()ÀïÉèÖÃÿ¸öº¢×ÓµÄͼƬºÍÎÄ×Ö¡¢¼àÌý.onLayout()Àï¶ÔÖмäµÄ2¸öº¢×ÓµÄλÖýøÐе÷Õû£¬Ê¹Æä¾ùÔÈ·Ö²¼£¬¼ûÎÒµÄǰÎÄ¡£Õâ¸öBottomControlPanelʵÏÖÁËView.OnClickListener½Ó¿Ú£¬ÔÚonClick()Àïͨ¹ýidÀ´ÅжÏÓû§µã»÷ÁËÄÄÒ»¸öº¢×Ó¡£ÅжϳöÀ´ºóÐèÒª×öÁ½¼þÊ£¬Ò»ÊǶÔÕâ¸ö±»µã»÷µÄ¶ÔÏó½øÐд¦Àí£¬Èç×ÖÌåÑÕÉ«¡¢Í¼Æ¬×ÊÔ´µÄ±ä»¯£¬ÓÒÉϽÇСºìµãµÄÒþ²ØµÈµÈ¡£ÁíÒ»·½Ã棬BottomControlPanelÒª¸æËß½«À´ËüµÄÖ÷ÈË£¬Ò²¾ÍÊÇActivityµ½µ×ÊǵãÁËÄĸö£¬Í¨ÖªActivityÈ¥Çл»fragment¡£¿ÉÒÔ¿´µ½£¬activityÀàËÆ¸ö×Ü¿ØÖÐÐÄ£¬BottomControlPanel¹ÜÀíÊôÓÚËüµÄImageText£¬Í¬Ê±Éϱ¨Activity¡£ActivityÖªµÀÏûÏ¢ºóÔÙÇл»fragment£¬Ã¿¸öfragment¶¼ÓÐ×Ô¼ºµÄÊÂÎñÂß¼¡£
ÕâÀﶨÒåÁË
public interface BottomPanelCallback{ public void onBottomPanelClick(int itemId);
} |
Õâ¸ö½Ó¿Ú£¬Í¨¹ý´«µÝIdÀ´Í¨ÖªActivity¡£defaultBtnChecked()º¯ÊýÊÇapk³õ´Î´ò¿ªºó£¬Ä¬ÈÏÇл»µ½µÚÒ»¸öÏûÏ¢fragmentÉÏ¡£
ÕâÀïÓиöµØ·½ÐèҪעÒ⣬¾ÍÊÇËäÈ»ImageTextºÍBottomControlPanel¶¼ÊÇ×Ô¶¨Òå¿Ø¼þ£¬µ«Á½ÕßÔÚ·½Ê½ÉÏÊÇÓÐÇø±ðµÄ¡£ÔÚImageTextµÄ¹¹Ô캯ÊýÀïͨ¹ýinflater½«²¼¾Ö¼ÓÔØ½øÀ´£¬Ëü¶ÔÓ¦µÄ²¼¾ÖÊǸöÆÕͨµÄ²¼¾Ö¡£¶øBottomControlPanel¶ÔÓ¦µÄ²¼¾ÖÎļþÀֱ½ÓʹÓÃÁ˶¨ÒåµÄBottomControlPanel£¬ÔÚonFinishInflateº¯ÊýÀïʵÀý»¯º¢×ÓView¡£Ç°ÕßÊÇinflateÖ®ºóʵÀý»¯µÄ¡£ÔÚʹÓÃImageTextµ½Ò»¸öеÄĸ²¼¾ÖʱÊÇͨ¹ý<org.yanzi.ui.ImageText
/>ÕâÖÖ·½Ê½½øÐеģ¬ÄÇôʹÓÃBottomControlPanelÓкÎÇø±ð£¬Çë¼ûÏÂÎĽéÉÜActivityµÄ²¼¾Öʱ¡£
¶þ¡¢¶¥²¿¿ØÖÆÀ¸
ÓÐÁ˵ײ¿¿ØÖÆÀ¸£¬¶¥²¿¿ØÖÆÀ¸¾Í¿ÉÒÔÈç·¨ÅÚÖÆÁË¡£ÕâÀïÏȽ»´ú¼¸¾ä£¬ËäÈ»Android3.0
ºóGoogleÍÆ³öµÄÓÐActionBarÀ´×ö¶¥²¿µ¼º½À¸£¬²Î¼û¹ùÉñµÄÕâÆª²©ÎÄ¡£µ«ÎÒ·¢ÏÖ£¬±¾ÎÄ×îÇ°ÃæÌùͼµÄ¼¸¿îÓ¦ÓÃÓ¦¸Ã¶¼Ã»ÓÐʹÓÃActionBar£¬ÒòΪËü²»¹»Áé»î¡£ActionBarʹÓÃÆðÀ´Ê²Ã´Ñù£¬´ó¼Ò¿´¿´Î¢ÐžÍÖªµÀÁË£¬ÄǸöµÄ¶¥²¿¿ØÖÆÀ¸¾ÍÊÇActionBar×öµÄ£¬Õâ¸öÓ¦¸ÃûÅÜ¡£
ͨ¹ý¹Û²ì£¬¶¥²¿¿ØÖÆÀ¸³ýÁ˱êÌâ¾ÓÖÐÍ⣬ÔÚÓÒÉϽÇͨ³£»áÔÙ·ÅÒ»¸ö°´Å¥¡£²»ÊÇImageView¾ÍÊÇTextView£¬ÕâÀïÎÒΪÁË·½±ã·ÅµÄÊÇÁ½¸öTextView£¬ÓÒ²àµÄ°´Å¥Ð§¹û¿ÉÒÔÔÙTextViewÉÏŪ¸ö±³¾°À´ÊµÏÖ¡£
HeadControlPanel.java
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.ui; import org.yanzi.constant.Constant; import com.example.fragmentproject.R; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.widget.RelativeLayout; import android.widget.TextView; public class HeadControlPanel extends RelativeLayout { private Context mContext; private TextView mMidleTitle; private TextView mRightTitle; private static final float middle_title_size = 20f; private static final float right_title_size = 17f; private static final int default_background_color = Color.rgb(23, 124, 202); public HeadControlPanel(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onFinishInflate() { // TODO Auto-generated method stub mMidleTitle = (TextView)findViewById(R.id.midle_title); mRightTitle = (TextView)findViewById(R.id.right_title); setBackgroundColor(default_background_color); } public void initHeadPanel(){ if(mMidleTitle != null){ setMiddleTitle(Constant.FRAGMENT_FLAG_MESSAGE); } } public void setMiddleTitle(String s){ mMidleTitle.setText(s); mMidleTitle.setTextSize(middle_title_size); } } </span> |
²¼¾ÖÎļþhead_panel_layout.xml
<span style="font-family:Comic Sans MS;font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <org.yanzi.ui.HeadControlPanel xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentTop="true"> <TextView android:id="@+id/midle_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textColor="@android:color/white"/> <TextView android:id="@+id/right_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textColor="@android:color/white"/> </org.yanzi.ui.HeadControlPanel> </span> |
Èý¡¢×Ü¿ØÖÐÐÄActivityºÍFragment
ÏȽ»´úÏÂFragmentµÄʹÓôóÖ·ÖÁ½ÖÖ£¬Ò»ÖÖÊǽ«Fragment×÷Ϊһ¸öViewдËÀÔÚ²¼¾ÖÖУ¬²¼¾ÖÀïʹÓÃandroid:nameÀ´¸æËßËü¶ÔÓ¦µÄÊÇÄĸöʵÌåFragment¡£ÕâÖÖÌí¼ÓfragmentµÄ·½Ê½²»ÄÜdeleteºÍreplaceµô¡£ÁíÒ»ÖÖÊÇͨ¹ý»ñµÃactivityµÄfragmentmanagerºÍfragmentTransactionºÍ½øÐж¯Ì¬µÄÌí¼Ó¡£ÕâÖÖ·½Ê½¸ü¼ÓÁé»î£¬Ò»°ãʹÓôËÖÖ·½·¨¡£
ÏÈ¿´ActivityµÄ²¼¾Öactivity_main.xml:
<span style="font-family:Comic Sans MS;font-size:18px;">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/root_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="org.yanzi.fragmentproject.MainActivity" > <include android:id="@+id/bottom_layout" layout="@layout/bottom_panel_layout" /> <View android:layout_width="match_parent" android:layout_height="1dip" android:layout_above="@id/bottom_layout" android:background="#FFE7E7E7" /> <include android:id="@+id/head_layout" layout="@layout/head_panel_layout" /> <View android:layout_width="match_parent" android:layout_height="1dip" android:layout_below="@id/head_layout" android:background="#FFE7E7E7" /> <FrameLayout android:id="@+id/fragment_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/head_layout" android:layout_above="@id/bottom_layout" > </FrameLayout> </RelativeLayout></span> |
×¢Òâ¿´ÕâÀïÊÇͨ¹ýincludeµÄ·½Ê½°Ñ¸Õ²Å×Ô¶¨ÒåµÄÉÏÏÂpanel¼Ó¹ýÀ´£¬¶ø²»ÄÜÖ±½ÓÓÃ<org.yanzi.ui.BottomControlPanel
/>ÕâÖÖ·½Ê½Ö±½Ó¼ÓÔØ¡£µ±È»Èç¹ûҲģ·ÂImageTextµÄ¹¹Ô췽ʽ£¬Ò²ÊÇ¿ÉÒÔÕâÑùÓõġ£¹ØÓÚinclude·½Ê½µÄʹÓÃÓм¸¸ö×¢ÒâÊÂÏ¾ÍÊÇ×îºÃÈÃËüµÄĸ²¼¾ÖÊÇRelativeLayout£¬·ñÔòµÄ»°ºÜÄÑ¿ØÖÆinclude½øÀ´µÄ²¼¾ÖµÄλÖá£ÁíÍ⣬include²¼¾ÖµÄλÖÃÒ»¶¨ÒªÐ´ÔÚinclude֮ǰ£¬Èçµ×²¿Ãæ°åÔÚ×îµ×²¿£¬android:layout_alignParentBottom="true"Õâ¾ä»°ÊÇÔÚbottom_panel_layout.xmlÀïдµÄ£¬Èç¹ûдÔÚactivity_main.xmlÀï¾ÍÊÇÎÞЧµÄ£¬Õâ×ÅʵÊǸöµ°ÌÛµÄÎÊÌâ¡£ÔÙ¾ÍÊÇincludeºóÉèÖõÄid»á¸²¸ÇµôÒÔǰµÄ£¬ËùÒÔÕâÀïÖ»ÔÚincludeµÄʱºòÉèÖÃid¡£ÆäÖеÄÁ½¸öViewÊÇ·Ö¸îÏß¡£ÕûÌåÊǰ´Õյײ¿À¸¡¢Éϲ¿À¸¡¢ÖмäFragmentµÄÈÝÆ÷À´·ÅÖõġ£
ÔÚ·ÅFragmentµÄʱºòÐèҪעÒ⣬¾¿¾¹ÊÇ·ñÒª½«¶¥²¿¿ØÖÆÀ¸·Åµ½¸÷×ÔµÄfragmentÀïºÏÊÊ»¹ÊǷŵ½ActivityÀïºÏÊÊÒª¿´¾ßÌåÇé¿ö£¬Èç¹û¶¥²¿À¸Àï¶àÊÇÏÔʾ±êÌâÕâÖÖ¹¦ÄÜ»òÉÙÁ¿µÄµã»÷ʼþ£¬Ó¦¸Ã·Åµ½ActivityÀ¼´¶¥²¿À¸µÄÊÂÎñÂß¼ºÍµ±Ç°fragmentµÄÊÂÎñÂß¼ñîºÏµÄ²»ÊǺܽô¡£¾Ù¸öÀý×Ó£¬±ÈÈç΢ÐŵĶ¥²¿À¸£¬²»¹ÜÄã´¦ÔÚÄĸöTabÒ³(ÁÄÌì¡¢·¢ÏÖ¡¢Í¨Ñ¶Â¼)£¬µã»÷¶¥²¿À¸ÀïµÄ°´Å¥¶¼³ÊÏÖ³öͬÑùµÄÄÚÈÝ¡£µ«·´¹ýÀ´½²£¬Èç¹û¶¥²¿À¸ÀïµÄÊÂÎñÂß¼ºÍfragmentñîºÏºÜ½ô£¬¼´ÔÚ²»Í¬µÄfragment£¬¶¥²¿À¸³ÊÏÖµÄÄÚÈݶ¼²»Ò»Ñù£¬ÇÒµã»÷ºó´¦ÀíµÄÊÂÎñÒ²ºÍµ±Ç°fragment½ôÃÜÁªÏµÒ»Æð£¬ÄǾÍÓ¦¸ÃÒ»¸öfragmentÅäÌ×Ò»¸ö¶¥²¿À¸£¬·½±ã¿ØÖÆ¡£±¾ÎÄÊǽ«Á½Õß·Ö¿ªµÄ¡£ËùÒÔÈÃfragmentµÄÈÝÆ÷ÔÚ¶¥²¿À¸Ö®Ï£¬µ×²¿À¸Ö®ÉÏ£¬²»ÕâÑùдµÄ»°£¬¾Í»áÕÚµ²¡£
<FrameLayout android:id="@+id/fragment_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/head_layout" android:layout_above="@id/bottom_layout" > </FrameLayout> |
MainActivity.java´úÂ룺
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.activity; import org.yanzi.constant.Constant; import org.yanzi.fragment.BaseFragment; import org.yanzi.fragment.ContactsFragment; import org.yanzi.fragment.MessageFragment; import org.yanzi.fragment.NewsFragment; import org.yanzi.fragment.SettingFragment; import org.yanzi.ui.BottomControlPanel; import org.yanzi.ui.BottomControlPanel.BottomPanelCallback; import org.yanzi.ui.HeadControlPanel; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.widget.Toast; import com.example.fragmentproject.R; public class MainActivity extends Activity implements BottomPanelCallback { BottomControlPanel bottomPanel = null; HeadControlPanel headPanel = null; private FragmentManager fragmentManager = null; private FragmentTransaction fragmentTransaction = null; /* private MessageFragment messageFragment; private ContactsFragment contactsFragment; private NewsFragment newsFragment; private SettingFragment settingFragment;*/ public static String currFragTag = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initUI(); fragmentManager = getFragmentManager(); setDefaultFirstFragment(Constant.FRAGMENT_FLAG_MESSAGE); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } private void initUI(){ bottomPanel = (BottomControlPanel)findViewById(R.id.bottom_layout); if(bottomPanel != null){ bottomPanel.initBottomPanel(); bottomPanel.setBottomCallback(this); } headPanel = (HeadControlPanel)findViewById(R.id.head_layout); if(headPanel != null){ headPanel.initHeadPanel(); } } /* ´¦ÀíBottomControlPanelµÄ»Øµ÷ * @see org.yanzi.ui.BottomControlPanel.BottomPanelCallback#onBottomPanelClick(int) */ @Override public void onBottomPanelClick(int itemId) { // TODO Auto-generated method stub String tag = ""; if((itemId & Constant.BTN_FLAG_MESSAGE) != 0){ tag = Constant.FRAGMENT_FLAG_MESSAGE; }else if((itemId & Constant.BTN_FLAG_CONTACTS) != 0){ tag = Constant.FRAGMENT_FLAG_CONTACTS; }else if((itemId & Constant.BTN_FLAG_NEWS) != 0){ tag = Constant.FRAGMENT_FLAG_NEWS; }else if((itemId & Constant.BTN_FLAG_SETTING) != 0){ tag = Constant.FRAGMENT_FLAG_SETTING; } setTabSelection(tag); //Çл»Fragment headPanel.setMiddleTitle(tag);//Çл»±êÌâ } private void setDefaultFirstFragment(String tag){ Log.i("yan", "setDefaultFirstFragment enter... currFragTag = " + currFragTag); setTabSelection(tag); bottomPanel.defaultBtnChecked(); Log.i("yan", "setDefaultFirstFragment exit..."); } private void commitTransactions(String tag){ if (fragmentTransaction != null && !fragmentTransaction.isEmpty()) { fragmentTransaction.commit(); currFragTag = tag; fragmentTransaction = null; } } private FragmentTransaction ensureTransaction( ){ if(fragmentTransaction == null){ fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); } return fragmentTransaction; } private void attachFragment(int layout, Fragment f, String tag){ if(f != null){ if(f.isDetached()){ ensureTransaction(); fragmentTransaction.attach(f); }else if(!f.isAdded()){ ensureTransaction(); fragmentTransaction.add(layout, f, tag); } } } private Fragment getFragment(String tag){ Fragment f = fragmentManager.findFragmentByTag(tag); if(f == null){ Toast.makeText(getApplicationContext(), "fragment = null tag = " + tag, Toast.LENGTH_SHORT).show(); f = BaseFragment.newInstance(getApplicationContext(), tag); } return f; } private void detachFragment(Fragment f){ if(f != null && !f.isDetached()){ ensureTransaction(); fragmentTransaction.detach(f); } } /**Çл»fragment * @param tag */ private void switchFragment(String tag){ if(TextUtils.equals(tag, currFragTag)){ return; } //°ÑÉÏÒ»¸öfragment detachµô if(currFragTag != null && !currFragTag.equals("")){ detachFragment(getFragment(currFragTag)); } attachFragment(R.id.fragment_content, getFragment(tag), tag); commitTransactions( tag); } /**ÉèÖÃÑ¡ÖеÄTag * @param tag */ public void setTabSelection(String tag) { // ¿ªÆôÒ»¸öFragmentÊÂÎñ fragmentTransaction = fragmentManager.beginTransaction(); /* if(TextUtils.equals(tag, Constant.FRAGMENT_FLAG_MESSAGE)){ if (messageFragment == null) { messageFragment = new MessageFragment(); } }else if(TextUtils.equals(tag, Constant.FRAGMENT_FLAG_CONTACTS)){ if (contactsFragment == null) { contactsFragment = new ContactsFragment(); } }else if(TextUtils.equals(tag, Constant.FRAGMENT_FLAG_NEWS)){ if (newsFragment == null) { newsFragment = new NewsFragment(); } }else if(TextUtils.equals(tag,Constant.FRAGMENT_FLAG_SETTING)){ if (settingFragment == null) { settingFragment = new SettingFragment(); } }else if(TextUtils.equals(tag, Constant.FRAGMENT_FLAG_SIMPLE)){ if (simpleFragment == null) { simpleFragment = new SimpleFragment(); } }*/ switchFragment(tag); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); currFragTag = ""; } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub } } </span> |
×¢ÒâÕâ¿éÎÒ×÷Á˸͝£¬²»ÐèÒªÉêÃ÷
/* private MessageFragment messageFragment; private ContactsFragment contactsFragment; private NewsFragment newsFragment; private SettingFragment settingFragment;*/ |
ÕâЩÄÚÈÝ£¬ÒòΪFragmentµÄÉú³ÉÊÇͨ¹ýBaseFragment.newInstance()À´Éú³ÉµÄ£¬´«½øÈ¥TagÉú³ÉÏàÓ¦µÄFragment¡£ËùÓеÄFragment£¬ContactsFragment¡¢MessageFragment¡¢NewsFragment¡¢SettingFragment¶¼¼Ì³Ð×ÔBaseFragment£¬Í¨¹ýBaseFragmentÀïµÄnewInstance()½Ó¿Ú½øÐÐʵÀý»¯¶ÔÓ¦µÄfragment¡£ÓŵãÊÇ·½±ã¹ÜÀí£¬È±µãôҲÓУ¬ÒòΪjava¼Ì³Ð¼Ì³ÐÒ»¸öÀ࣬²»ÄÜͬʱ¼Ì³ÐÁ½¸öÀà¡£ËùÒÔÈçListFragmentÕâЩ£¬¾Íû·¨Í¬Ê±¼Ì³ÐÁË¡£²»¹ýºÃÔÚÓÐlistviewÕâЩ£¬Ò²·Á°²»ÁËÎÒÃÇ×öµ½Í¬ÑùµÄЧ¹û¡£
ActivityÀïʼþµÄÈë¿ÚÊÇÔÚonBottomPanelClick()¼àÌýµã»÷ÁËË£¬È»ºó£º
etTabSelection(tag); //Çл»Fragment
headPanel.setMiddleTitle(tag);//Çл»±êÌâ |
ÏÈÇл»FragmentÔÙÇл»¶¥²¿À¸µÄ±êÌâ¡£setTabSelection()ÀïÖ±½Óµ÷switchFragment(),ÔÚswitchFragmentº¯ÊýÀïÏÈÅжϱêÇ©ÊÇ·ñÒ»Ñù£¬Ò»ÑùÔòÒâÍâ×ÅÎÞÐèÇл»£¬·ñÔòµÄ»°¾ÍÏȰѵ±Ç°FragmentÕÒµ½È»ºódetachµô£¬Ö®ºó½øµ½attachFragment()º¯ÊýÀï¡£ÔÚÕâÀÏÈÅжÏÕâ¸öfragmentÊDz»ÊDZ»detachµôµÄ£¬Èç¹ûÊǵϰÒâζ×ÅÖ®Ç°Ôø±»add¹ý£¬ËùÒÔÖ»Ðèattach¾ÍokÁË¡£·ñÔòµÄ»°£¬Òâζ×ÅÕâÊǵÚÒ»´Î£¬½øÐÐadd.ÕâÀï¼Ç¼ÏÂFragmentµÄÉùÃ÷ÖÜÆÚ:
MessageFragmentÕý³£´ò¿ª£º
Line 155: 01-04 11:50:46.688 E/MessageFragment( 2546): onAttach----- Line 159: 01-04 11:50:46.688 E/MessageFragment( 2546): onCreate------ Line 161: 01-04 11:50:46.693 D/MessageFragment( 2546): onCreateView----> Line 165: 01-04 11:50:46.694 E/MessageFragment( 2546): onActivityCreated------- Line 169: 01-04 11:50:46.694 E/MessageFragment( 2546): onStart-----> Line 173: 01-04 11:50:46.694 E/MessageFragment( 2546): onresume----> |
·µ»Ø¼üÍ˳ö£º
Line 183: 01-04 11:52:26.506 E/MessageFragment( 2546): onpause Line 259: 01-04 11:52:27.131 E/MessageFragment( 2546): onStop Line 263: 01-04 11:52:27.132 E/MessageFragment( 2546): ondestoryView Line 269: 01-04 11:52:27.134 E/MessageFragment( 2546): ondestory Line 271: 01-04 11:52:27.135 D/MessageFragment( 2546): onDetach------ |
°´home°´¼üÍ˳ö:
Line 97: 01-05 05:06:15.659 E/MessageFragment(18835): onpause Line 215: 01-05 05:06:16.292 E/MessageFragment(18835): onStop |
Ôٴδò¿ª£º
Line 81: 01-05 05:07:02.408 E/MessageFragment(18835): onStart-----> Line 85: 01-05 05:07:02.408 E/MessageFragment(18835): onresume----> |
ͨ¹ýdetachµÄ·½Ê½Çл»ÖÁÆäËûFragment£º
Line 69: 01-04 11:53:33.381 E/MessageFragment( 2546): onpause Line 73: 01-04 11:53:33.382 E/MessageFragment( 2546): onStop Line 77: 01-04 11:53:33.382 E/MessageFragment( 2546): ondestoryView |
ÔÙ´ÎÇл»¹ýÀ´:
Line 55: 01-04 11:54:59.462 D/MessageFragment( 2546): onCreateView----> Line 59: 01-04 11:54:59.463 E/MessageFragment( 2546): onActivityCreated------- Line 63: 01-04 11:54:59.463 E/MessageFragment( 2546): onStart-----> Line 67: 01-04 11:54:59.464 E/MessageFragment( 2546): onresume----> |
ËÄ¡¢ÊÊÅäÆ÷ºÍMessageBean
±¾À´ÒªÁ¬Êý¾Ý¿âµÄ£¬Ê±¼äÔÒòÓøö¼òµ¥µÄMessageBean´úÌæÁË¡£Ò»¸öÏûÏ¢·ÖÁªÏµÈËÍ·Ïñ¡¢Ãû×Ö¡¢ÏûÏ¢ÕýÎĺÍʱ¼äËIJ¿·Ö×é³É£¬·â×°µ½Ò»¸öMessageBeanÀï¡£
MessageBean.java
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.bean; public class MessageBean { private int PhotoDrawableId; private String MessageName; private String MessageContent; private String MessageTime; public MessageBean(){ } public MessageBean(int photoDrawableId, String messageName, String messageContent, String messageTime) { super(); PhotoDrawableId = photoDrawableId; MessageName = messageName; MessageContent = messageContent; MessageTime = messageTime; } public int getPhotoDrawableId() { return PhotoDrawableId; } public void setPhotoDrawableId(int mPhotoDrawableId) { this.PhotoDrawableId = mPhotoDrawableId; } public String getMessageName() { return MessageName; } public void setMessageName(String messageName) { MessageName = messageName; } public String getMessageContent() { return MessageContent; } public void setMessageContent(String messageContent) { MessageContent = messageContent; } public String getMessageTime() { return MessageTime; } public void setMessageTime(String messageTime) { MessageTime = messageTime; } @Override public String toString() { return "MessageBean [mPhotoDrawableId=" + PhotoDrawableId + ", MessageName=" + MessageName + ", MessageContent=" + MessageContent + ", MessageTime=" + MessageTime + "]"; } } </span> |
È»ºó¾ÍÊÇMessageFragmentµÄListViewÀïµÄÊÊÅäÆ÷£¬MessageAdapter.java
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.fragment.adapter; import java.util.List; import org.yanzi.bean.MessageBean; import com.example.fragmentproject.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class MessageAdapter extends BaseAdapter { private List<MessageBean> mListMsgBean = null; private Context mContext; private LayoutInflater mInflater; public MessageAdapter(List<MessageBean> listMsgBean, Context context){ mListMsgBean = listMsgBean; mContext = context; mInflater = LayoutInflater.from(mContext); } @Override public int getCount() { // TODO Auto-generated method stub return mListMsgBean.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mListMsgBean.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v = mInflater.inflate(R.layout.message_item_layout, null); ImageView imageView = (ImageView) v.findViewById(R.id.img_msg_item); imageView.setImageResource(mListMsgBean.get(position).getPhotoDrawableId()); TextView nameMsg = (TextView)v.findViewById(R.id.name_msg_item); nameMsg.setText(mListMsgBean.get(position).getMessageName()); TextView contentMsg = (TextView)v.findViewById(R.id.content_msg_item); contentMsg.setText(mListMsgBean.get(position).getMessageContent()); TextView timeMsg = (TextView)v.findViewById(R.id.time_msg_item); timeMsg.setText(mListMsgBean.get(position).getMessageTime()); return v; } } </span> |
ÒòΪÊÇʾÀý£¬getViewÀïûÓÃViewHolder¡£
×îºóÊÇMessageFragmentÀïͨ¹ý¶ÔlistviewÉèÖÃÊÊÅäÆ÷£¬½«MessageBean×÷ΪÐÅÏ¢µÄÌṩÕßÒ²Ìî³äµ½ÊÊÅäÆ÷Àï¡£
MessageFragment.java´úÂ룺
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.fragment; import java.util.ArrayList; import java.util.List; import org.yanzi.activity.MainActivity; import org.yanzi.bean.MessageBean; import org.yanzi.constant.Constant; import org.yanzi.fragment.adapter.MessageAdapter; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.example.fragmentproject.R; public class MessageFragment extends BaseFragment { private static final String TAG = "MessageFragment"; private MainActivity mMainActivity ; private ListView mListView; private MessageAdapter mMsgAdapter; private List<MessageBean> mMsgBean = new ArrayList<MessageBean>(); public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View messageLayout = inflater.inflate(R.layout.message_layout, container, false); Log.d(TAG, "onCreateView---->"); mMainActivity = (MainActivity) getActivity(); mFragmentManager = getActivity().getFragmentManager(); mListView = (ListView)messageLayout.findViewById(R.id.listview_message); mMsgAdapter = new MessageAdapter(mMsgBean, mMainActivity); mListView.setAdapter(mMsgAdapter); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Toast.makeText(mMainActivity, mMsgBean.get(position).toString(), Toast.LENGTH_SHORT).show(); } }); return messageLayout; } @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); Log.e(TAG, "onAttach-----"); } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Log.e(TAG, "onCreate------"); mMsgBean.add(new MessageBean(R.drawable.ic_photo_1, "ÕÅÈý", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_2, "ÀîËÄ", "¹þ¹þ", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_3, "СÃ÷", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_4, "ÍõÎå", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_5, "Jack", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_6, "Jone", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_7, "Jone", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_8, "Jone", "³Ô·¹Ã»?", "×òÌì")); mMsgBean.add(new MessageBean(R.drawable.ic_photo_9, "Jone", "³Ô·¹Ã»?", "×òÌì")); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); Log.e(TAG, "onActivityCreated-------"); } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); Log.e(TAG, "onStart----->"); } @Override public void onResume() { // TODO Auto-generated method stub super.onResume(); Log.e(TAG, "onresume---->"); MainActivity.currFragTag = Constant.FRAGMENT_FLAG_MESSAGE; } @Override public void onPause() { // TODO Auto-generated method stub super.onPause(); Log.e(TAG, "onpause"); } @Override public void onStop() { // TODO Auto-generated method stub super.onStop(); Log.e(TAG, "onStop"); } @Override public void onDestroyView() { // TODO Auto-generated method stub super.onDestroyView(); Log.e(TAG, "ondestoryView"); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.e(TAG, "ondestory"); } @Override public void onDetach() { // TODO Auto-generated method stub super.onDetach(); Log.d(TAG, "onDetach------"); } } </span> |
×îºóÀ´¿´ÏÂЧ¹û°É£¬Ö»ÓÐMessageFragmentÌî³äÁËÊý¾Ý£º



ºáÆÁÇé¿öÏÂ:

|