Fragment动态加载
首先是XML布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.myapplication.MainActivity"> <FrameLayout android:id="@+id/fragment" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentBottom="true" > <TextView android:id="@+id/xiaoxi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="消息"/> <TextView android:id="@+id/lianxiren" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="联系人"/> <TextView android:id="@+id/dongtai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="动态"/> </LinearLayout> </RelativeLayout>布局写完后创建类继承Fragment
package com.example.myapplication; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * Created by on 2016/12/30. */ public class dongFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView textView=new TextView(getActivity()); textView.setText("我是动态"); return textView; } }
MainActivity中的代码
package com.example.myapplication; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.TextView; public class MainActivity extends FragmentActivity implements View.OnClickListener{ private TextView xiaoxi; private TextView dongtai; private TextView lianxiren; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); //进入程序直接加载消息的Fragment changFragment(new xiaoxiFragment(),"xiaoxifragment"); } private void initView() { xiaoxi=(TextView) findViewById(R.id.xiaoxi); dongtai = (TextView) findViewById(R.id.dongtai); lianxiren = (TextView) findViewById(R.id.lianxiren); xiaoxi.setOnClickListener(this); dongtai.setOnClickListener(this); lianxiren.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.xiaoxi: changFragment(new xiaoxiFragment(),"xiaoxifragment"); break; case R.id.dongtai: changFragment(new dongFragment(),"dongfragment"); break; case R.id.lianxiren: changFragment(new lianFragment(),"lianfragment"); break; } } public void changFragment(Fragment fragment,String tag){ //得到fragment管理者 FragmentManager fragmentManager = getSupportFragmentManager(); //开启事务 FragmentTransaction beginTransaction=fragmentManager.beginTransaction(); //第一个参数是当前要添加Fragment需要放的容器 //第二个参数是要替换的Fragment //第三个参数是标记 // xiaoxiFragment xiaoxifragment= new xiaoxiFragment(); beginTransaction.replace(R.id.fragment,fragment,tag); //提交事务 beginTransaction.commit(); } }