我有一个 LinearLayout,其中包括一个 Fragment 和一个 FrameLayout。我想为它们使用 layout_weight,因为我希望 Fragment 只占据屏幕的一小部分,而 FrameLayout 应该占据屏幕的大部分。我希望 layout_weight 仅应用于宽度部分而不是高度。当平板电脑的方向发生变化时,我还希望 layout_weight 发生变化。例如。当它处于纵向模式时,我希望 Fragment 占据屏幕空间的 3/10,FrameLayout 占据 7/10,而在横向模式下,我希望 Fragment 占据屏幕空间的 2/10,FrameLayout 占据 8 /10th 屏幕空间。
我有两个单独的横向和纵向模式布局,但它不起作用。我不确定这里有什么错误:-(
布局大地\frame_main_activity.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal"
android:weightSum="10"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:paddingRight="10dip" >
<!-- This fragment takes the left area fixed for menu -->
<fragment
android:id="@+id/left_pane_fragment"
android:name="MenuFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
<!-- A place holder which is filled by relevant content later -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="8"
android:background="#FFFFFF" />
</LinearLayout>
和
布局大端口frame_main_activity.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal"
android:weightSum="10"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:paddingRight="10dip" >
<!-- This fragment takes the left area fixed for menu -->
<fragment
android:id="@+id/left_pane_fragment"
android:name="MenuFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3" />
<!-- A place holder which is filled by relevant content later -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="7"
android:background="#FFFFFF" />
</LinearLayout>
问题是,它为两个方向选择任何一个 layout_weight 并且不会在方向更改时更新 layout_weight 。例如,在上述情况下,它只会为横向和纵向模式选择 2,8 的 layout_weight,并且不会根据方向变化更新它。
我不确定这里出了什么问题。我检查了各种教程,并在各种论坛上尝试了很多东西,但找不到任何可以解决问题的东西。