我需要为以编程方式包含片段的framelayout设置weigth。这可能吗?
我有一个xml布局膨胀的片段:
<LinearLayout
android:background="@drawable/fondodroid2"
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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".TabOrderActivity$OrderWorkoutsFragment">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:layout_weight="0"
android:id="@+id/fragment_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp">
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:id="@+id/fragment_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="16dp" />
</LinearLayout>
</LinearLayout>
然后,我在第一个framelayout中有一个片段实例化,现在,当我点击第一个片段中的listview项目时,我想将权重设置为1以使多个面板可见.. 这可能吗?
答案 0 :(得分:0)
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) frameLayout.getLayoutParams();
layoutParams.weight = 10;
答案 1 :(得分:0)
在这种情况下,您必须将帧宽设置为0dp以应用布局权重,并在线性布局中设置权重总和:
示例:
<LinearLayout
android:background="@drawable/fondodroid2"
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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".TabOrderActivity$OrderWorkoutsFragment">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2">
<FrameLayout
android:layout_weight="0"
android:id="@+id/fragment_list"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="16dp">
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:id="@+id/fragment_detail"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginRight="16dp" />
</LinearLayout>