android 之 FragmentLayout的多布局实现

1.首先创建一个activity_mainxml文件
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version= "1.0"  encoding= "utf-8" ?>
<FrameLayout
     xmlns:android= "http://schemas.android.com/apk/res/android"
     xmlns:tools= "http://schemas.android.com/tools"
     android:layout_width= "match_parent"
     android:layout_height= "match_parent"
     android:id= "@+id/main_root"
     tools:context= ".activity.MainActivity"
     >
 
     <FrameLayout
         android:background= "@color/titlebar_background"
         android:id= "@+id/fragment_container"
         android:layout_width= "match_parent"
         android:layout_height= "match_parent"
         android:layout_above= "@+id/main_bottom_tab" >
     </FrameLayout>
 
     <LinearLayout
         android:layout_gravity= "bottom"
         android:gravity= "center"
         android:orientation= "horizontal"
         android:layout_width= "match_parent"
         android:layout_height= "wrap_content" >
         <Button
             android:id= "@+id/bt_home"
             android:text= "home"
             android:layout_width= "wrap_content"
             android:layout_height= "wrap_content"  />
         <Button
             android:text= "play"
             android:layout_width= "wrap_content"
             android:layout_height= "wrap_content"  />
         <Button
             android:id= "@+id/bt_me"
             android:text= "me"
             android:layout_width= "wrap_content"
             android:layout_height= "wrap_content"  />
     </LinearLayout>
 
</FrameLayout>


2.创建2个FrameLayout.xml


layout_fragment_home.xml 如下:
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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" >
 
     <TextView
         android:textSize= "130sp"
         android:gravity= "center"
         android:text= "home"
         android:layout_width= "match_parent"
         android:layout_height= "match_parent"  />
 
</LinearLayout>


layout_fragment_me.xml 如下
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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" >
 
     <TextView
         android:textSize= "130sp"
         android:gravity= "center"
         android:text= "me"
         android:layout_width= "match_parent"
         android:layout_height= "match_parent"  />
 
</LinearLayout>


再定义FragmentHome:
Java code
?
1
2
3
4
5
6
7
public  class  FragmentHome  extends  Fragment {
 
     @Override
     public  View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         View root = inflater.inflate(R.layout.layout_fragment_home, container,  false );
         return  root;
     }

再定义FragmentMe:
Java code
?
1
2
3
4
5
6
7
8
9
public  class  FragmentMe  extends  Fragment {
 
     @Override
     public  View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         View root = inflater.inflate(R.layout.layout_fragment_me, container,  false );
         return  root;
     }
 
}


最后MainActivity代码如下:
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public  class  MainActivity  extends  FragmentActivity  implements  View.OnClickListener{
     private  FragmentHome _home;
     private  FragmentMe _Me;
 
     static  final  String TAG =  "MainActivity" ;
 
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         //
         Button home = (Button)findViewById(R.id.bt_home);
         Button me = (Button)findViewById(R.id.bt_me);
         home.setOnClickListener( this );
         me.setOnClickListener( this );
         //
         initFragmentLayout();
     }
 
     @Override
     protected  void  onDestroy() {
         super .onDestroy();
     }
 
     private  void  initFragmentLayout(){
         _home =  new  FragmentHome();
         _Me =  new  FragmentMe();
 
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         ft.add(R.id.fragment_container, _home);
         ft.add(R.id.fragment_container, _Me);
         ft.hide(_Me);
         ft.commit();
     }
 
     @Override
     public  void  onClick(View view){
         int  id = view.getId();
         switch  (id){
             case  R.id.bt_home:{
                 FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
                 ft1.hide(_Me);
                 ft1.show(_home);
                 ft1.commit();
                 break ;}
             case  R.id.bt_me:{
                 FragmentTransaction ft2 = getSupportFragmentManager().beginTransaction();
                 ft2.hide(_home);
                 ft2.show(_Me);
                 ft2.commit();
             }
         }
     }
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值