0

我有一个在屏幕上显示两个片段的活动,一个在另一个之下。顶部片段是活动的用户界面,第二个片段是自定义 ListView。我有两个可以填充顶部插槽的片段,每个片段的大小都不同。ListView 用于两者。

我面临的问题是顶部和底部片段之间存在重大差距。我知道它与 layout_weight 属性有关,而 layout_weight 是我见过的控制片段命令的屏幕大小的唯一方法。

我想知道的是,是否有办法在加载片段时动态调整保留片段区域的大小,或者我是否被这个丑陋的差距所困扰。

这是我的布局:

<?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" >

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        <TabWidget
            android:id="@android:id/tabs"
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@+android:id/realtabcontent1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <FrameLayout
            android:id="@+android:id/realtabcontent2"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="2" />
    </LinearLayout>
</TabHost>
</LinearLayout>
4

1 回答 1

0

我已经想通了。托管片段的两个 FrameLayouts 的布局高度应设置为android:layout_height="wrap_content"layout_weight应删除该行。然后在加载到该 FrameLayout 的片段上动态处理间距。

于 2013-04-27T09:07:35.047 回答