Android——Fragment使用

来源:互联网 发布:python源代码 编辑:程序博客网 时间:2024/06/05 21:52

一、动态加载Fragment:

                                                                //控件ID,  Fragment对象
        getSupportFragmentManager().beginTransaction().add(R.id.main_title, titlefrag).commit();


二、选项卡式Fragment切换(节省资源):

        if (fragment != lastfrag) {
               if (!fragment.isAdded()) {//判断是否add过
                   getSupportFragmentManager().beginTransaction().hide(lastfrag).add(R.id.main_body, fragment).commit();
                } else {
                  getSupportFragmentManager().beginTransaction().hide(lastfrag).show(fragment).commit();
                }
                lastfrag = fragment;
         }



示例代码:


一、Fragment

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        view = inflater.inflate(R.layout.kantie, container, false);        return view;    }




二、MainActivity

import android.content.Intent;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import com.example.administrator.wenews.Faxian.Faxian_Act;import com.example.administrator.wenews.InterFaces.SendMessage;import com.example.administrator.wenews.MainFrag.Kantie_Frag;import com.example.administrator.wenews.MainFrag.Main_Bottom_Frag;import com.example.administrator.wenews.MainFrag.Main_Title_Frag;import com.example.administrator.wenews.MainFrag.Weather_Frag;import com.example.administrator.wenews.MainFrag.Wo_Frag;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;import java.util.ArrayList;import java.util.List;public class MainActivity extends FragmentActivity implements SendMessage {    private Fragment titlefrag;    private Fragment bottomfrag;    private SendMessage title_send;    private Fragment lastfrag;    private List<Fragment> frags;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initFrag();    }    private void initFrag() {        //标题        titlefrag = new Main_Title_Frag();        getSupportFragmentManager().beginTransaction().add(R.id.main_title, titlefrag).commit();        title_send = (SendMessage) titlefrag;        //底部        bottomfrag = new Main_Bottom_Frag();        getSupportFragmentManager().beginTransaction().add(R.id.main_bottom, bottomfrag).commit();        //内容        frags = new ArrayList<Fragment>();        frags.add(new Kantie_Frag());        frags.add(new Fragment());//发现占用了一个位置        frags.add(new Weather_Frag());        frags.add(new Wo_Frag());        lastfrag = frags.get(0);        getSupportFragmentManager().beginTransaction().add(R.id.main_body, lastfrag).commit();    }    //底部点击的回调    @Override    public void initMessage(String s) {        if (s.equals("1")) {            Intent intent = new Intent(MainActivity.this, Faxian_Act.class);            startActivity(intent);        } else {            initShow(frags.get(Integer.parseInt(s)));            title_send.initMessage(s);        }    }    //资源问题    private void initShow(Fragment fragment) {        if (fragment != lastfrag) {            if (!fragment.isAdded()) {//判断是否add过                getSupportFragmentManager().beginTransaction().hide(lastfrag).add(R.id.main_body, fragment).commit();            } else {                getSupportFragmentManager().beginTransaction().hide(lastfrag).show(fragment).commit();            }            lastfrag = fragment;        }    }}







0 0