一、Fragment的产生与介绍
Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
二、Fragment实例
1、创建Fragment
public class TestStripsFragment extends Fragment implements View.OnClickListener{
private Button button;
//重点在此,Fragment通过onCreateView来引用布局文件,其与activity用法一致
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_content, container, false);
button = (Button) view.findViewById(R.id.bt);
button.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt:
Toast.makeText(getActivity(),"wzzoooooooooo",Toast.LENGTH_SHORT).show();
break;
}
}
}
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="click"/>
</RelativeLayout>
2、在MainActivity中引用Fragment,此例中是直接在布局文件中引用的
<?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"
tools:context="wzz.a2017wzzteststrips.MainActivity">
//重点,在此将Fragment引入MainActivity
<fragment
android:id="@+id/id_fragment_content"
android:name="wzz.a2017wzzteststrips.TestStripsFragment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
MainActivity代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
到此为止,一个简单的Android Fragment应用就创建完成了,之后相关的逻辑操作都放在Fragment类中进行就可以了。
网友评论