Fragment
意思为碎片、片段。
在Android中有些Activity在手机上看起来很美观,但放在屏幕更大的平板类的设备上,可能就不一样了,而Fragment
能在一个Activity中内嵌多个独立的小Activity,有效的解决了app在大屏设备上的显示问题。
运行环境
- Windows 10
- Android Studio Arctic Fox (2020.3.1)
- jdk1.7.0_67
新建一个项目
添加控件
在布局文件activity_main.xml中
添加两个FrameLayout
控件。
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/leftcontainer"
android:layout_weight="2">
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/rightcontainer"
android:layout_weight="3">
</FrameLayout>
android:layout_width="0dp"
和 android:layout_weight="2"
需要搭配使用,表示id为leftcontainer
的占屏幕的2份(即2/5),id为rightcontainer
占屏幕3份(即3/5)。
新建Fragment
在Android Studio界面中点击右上角的File,依次选择new->Java Class,命名为LeftFragment
,RightFragment
。 再点击new->XML->layout XML File,命名为leftfragmentlayout
,rightfragmentlayout
。
布局文件名不可大写。
在LeftFragment.java和RightFragment.java中继承Fragment。注意Fragment的版本。
接着输入
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view=inflater.inflate(R.layout.leftfragmentlayout,container,false);
在新建的两个布局文件中输入以下代码。
//leftfragmentlayout.xml
<?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"
android:orientation="vertical"
android:background="#cccc11">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title_list