我有一个复杂的布局情况,其中水平LinearLayout
包含另外两个LinearLayout
。这些布局的内容是动态的,可以是任何类型的视图,并在运行时从不同的独立源生成。
我希望只要有足够的空间就显示它们,并将其限制为可用空间的50%。所以我希望那些孩子LinearLayout
在有足够空间时拥有layout_width="wrap_content"
,而在没有空间时{}} layout_weight="0.5"
。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="2dp" >
<LinearLayout
android:id="@+id/title_frame"
android:layout_width="wrap_content"
android:layout_height="48dp"/>
<LinearLayout
android:id="@+id/options_frame"
android:layout_width="wrap_content"
android:layout_height="48dp"/>
</LinearLayout>
这意味着空间分布可以是10-90,25-75,60-40;当没有足够的空间来显示两个视图的整个内容时,它只会是50-50。到目前为止,我还没有找到一种方法从XML中做到这一点,所以我是从代码中做到的。我的问题是,我可以仅使用XML属性实现我想要的吗?一种不同的布局能够做到吗?
这是我当前的布局XML:
{{1}}
答案 0 :(得分:2)
试试这个。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="2dp" >
<LinearLayout
android:id="@+id/title_frame"
android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_weight="1">
</LinearLayout>
<LinearLayout
android:id="@+id/options_frame"
android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_weight="1">
</LinearLayout>
</LinearLayout>
我尝试使用textviews,这应该符合要求。
答案 1 :(得分:1)
看起来这只能使用XML属性来实现。
答案 2 :(得分:0)
在使用权重概念时,将layout_width =“wrap_content”更改为layout_width =“fill_parent”。