你的位置:首页 > 操作系统

[操作系统]Android Fragment初探:静态Fragment组成Activity


一直习惯了在Activity中写所有事件处理代码,直到认真学习Fragment时,才发现,Activity完全可以由多个Fragment组成。

对Fragment的了解还不够深入,先从静态Fragment开始练习,把Fragment当成单纯的Activity控件。

就来写一个最常用的“标题+正文”布局吧!

 

activity_main.

 1 <RelativeLayout ="http://schemas.android.com/apk/res/android" 2         ="http://schemas.android.com/tools" 3         android:layout_width="match_parent" 4         android:layout_height="match_parent" 5         tools:context=".MainActivity"> 6  7   <fragment 8     android:id="@+id/fragment_title" 9     android:name="com.example.hopecapital.myapplication.TitleFragment"10     android:layout_width="fill_parent"11     android:layout_height="45dp" />12 13   <fragment14     android:layout_below="@id/fragment_title"15     android:id="@+id/id_fragment_content"16     android:name="com.example.hopecapital.myapplication.ContentFragment"17     android:layout_width="fill_parent"18     android:layout_height="fill_parent" />19 20 </RelativeLayout>

主界面的布局,需要写上用到的fragment,并规定好他们的位置。

 

MainActivity.java:

 1 package com.example.hopecapital.myapplication; 2  3 import android.app.Activity; 4 import android.os.Bundle; 5  6  7 public class MainActivity extends Activity { 8  9   @Override10   protected void onCreate(Bundle savedInstanceState) {11     super.onCreate(savedInstanceState);12     setContentView(R.layout.activity_main);13   }14 15 }

这里只需要加载布局即可。

 

接下来是两个fragment的布局和java代码。

fragment_title.

 1 <??> 2 <RelativeLayout ="http://schemas.android.com/apk/res/android" 3         android:layout_width="match_parent" 4         android:layout_height="45dp"> 5  6   <ImageButton 7     android:id="@+id/btn_menu" 8     android:layout_width="wrap_content" 9     android:layout_height="wrap_content"10     android:layout_centerVertical="true"11     android:layout_marginLeft="3dp"12     android:background="@mipmap/ic_launcher" />13 14   <TextView15     android:layout_width="fill_parent"16     android:layout_height="fill_parent"17     android:gravity="center"18     android:text="标题"19     android:textSize="20sp"20     android:textStyle="bold" />21 22 </RelativeLayout>

 

TitleFragment.java:

 1 package com.example.hopecapital.myapplication; 2  3 import android.app.Fragment; 4 import android.os.Bundle; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.view.ViewGroup; 8 import android.widget.ImageButton; 9 import android.widget.Toast;10 11 public class TitleFragment extends Fragment {12   private ImageButton Menu;13 14   @Override15   public View onCreateView(LayoutInflater inflater, ViewGroup container,16                Bundle savedInstanceState){17     View view = inflater.inflate(R.layout.fragment_title,container,false);18     Menu = (ImageButton)view.findViewById(R.id.btn_menu);19 20     Menu.setOnClickListener(new View.OnClickListener() {21       @Override22       public void onClick(View v) {23 24         Toast.makeText(getActivity(),"titleFragment!",Toast.LENGTH_SHORT).show();25       }26     });27     return view;28   }29 }

 

fragment_content.

 1 <??> 2 <RelativeLayout ="http://schemas.android.com/apk/res/android" 3         android:layout_width="match_parent" 4         android:layout_height="match_parent"> 5  6   <TextView 7     android:layout_width="match_parent" 8     android:layout_height="match_parent" 9     android:gravity="center"10     android:text="正文区域"11     android:textSize="20sp" />12 13 </RelativeLayout>

 

ContentFragment.java:

 1 package com.example.hopecapital.myapplication; 2  3  4 import android.app.Fragment; 5 import android.os.Bundle; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 10 11 /**12  * A simple {@link Fragment} subclass.13 */14 public class ContentFragment extends Fragment {15 16 17   public ContentFragment() {18     // Required empty public constructor19   }20 21 22   @Override23   public View onCreateView(LayoutInflater inflater, ViewGroup container,24                Bundle savedInstanceState) {25     return inflater.inflate(R.layout.fragment_content,container,false);26   }27 28 29 }

 

至此,Activity由两部分Fragment分别控制,需要改哪里直接找对应Fragment即可。




去宁夏的旅游团价格去宁夏旅游必去景点去宁夏旅游要多少钱去宁夏旅游最佳路线去宁夏旅游最佳时间2015年第19届“世界读书日”活动方案 2015年春节放假安排时间表 2015中国56个少数民族传统节日总览 香港2015年公众假期公布 复活节5天连休 歇马举人村玩什么?恩平歇马举人村介绍? 丹霞山性博物馆在哪里?韶关丹霞山性博物馆乘车路线? 2015三亚龙抬头节有哪些好玩的?海南三亚二月二龙抬头节本地人免费是真的吗? 丹霞山性博物馆几点开门?韶关丹霞山性博物馆游玩多长时间? 霞客古渡有直达车吗?上林霞客古渡乘车路线? 2015广东漂流节在哪里?广东漂流节在哪举行? 南宁到霞客古渡多少公里?上林霞客古渡景区开车路线? 2015广东漂流节几号开幕?广东漂流节开幕时间? 《初三大四我爱你》好不好看?拍摄地在哪里? “世界末日”说是真的吗?如果是真的,去哪里度过剩下的日子? 中国情侣为什么都喜欢去马尔代夫旅游? 巴黎旅游注意事项 AT28HC256E-12SC Datasheet AT28HC256E-12SC Datasheet AT28HC256E-12SI Datasheet AT28HC256E-12SI Datasheet AT28HC256E12SI Datasheet AT28HC256E12SI Datasheet 大兴安岭到港澳3日游 大兴安岭到港澳3日游 大兴安岭到港澳3日游 浙江香港三日游 浙江香港三日游 浙江香港三日游 牡丹江跟团香港2日游 牡丹江跟团香港2日游 牡丹江跟团香港2日游