今天在练习fragment碎片的时候,进行界面布局的时候出现了这个问题。
后来解决后发现原因很简单:就是因为在布局xml文件中,引用ID和声明ID的顺序必须保证声明在前,引用在后。和布局的顺序无关。
【声明ID——android:id="@+id/btnLayout"。引用ID——android:layout_above="@id/btnLayout"】
出现错误的代码:
<RelativeLayout 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" tools:context="com.why.practice.viewpagerfragment1.MainActivity" > <FrameLayout android:id="@+id/fragmentLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_above="@id/btnLayout" android:layout_centerHorizontal="true"> </FrameLayout> <LinearLayout android:id="@+id/btnLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <Button android:id="@+id/btn_one" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_oneText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> <Button android:id="@+id/btn_two" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_twoText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> <Button android:id="@+id/btn_three" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_threeText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> </LinearLayout> </RelativeLayout>
正确的代码:
<RelativeLayout 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" tools:context="com.why.practice.viewpagerfragment1.MainActivity" > <LinearLayout android:id="@+id/btnLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <Button android:id="@+id/btn_one" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_oneText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> <Button android:id="@+id/btn_two" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_twoText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> <Button android:id="@+id/btn_three" android:layout_width="0.0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="5dp" android:text="@string/btn_threeText" android:background="#009eff" android:textColor="#fff" style="?android:attr/buttonBarButtonStyle" /> </LinearLayout> <FrameLayout android:id="@+id/fragmentLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_above="@id/btnLayout" android:layout_centerHorizontal="true"> </FrameLayout> </RelativeLayout>