如何在android中更改片段的重量大小?

时间:2012-03-28 07:21:54

标签: java android

这是片段视图的xml-Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="100"
     >

    <fragment
        android:id="@+id/menuFragment"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="70"

        class="com.pack.Menufragment" >
    </fragment>

    <fragment
        android:id="@+id/bodyFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="30"
        class="com.pack.BodyFragment" >
    </fragment>

</LinearLayout>

现在我想从java而不是XML更改片段权重大小,无论如何都要这样做吗?

3 个答案:

答案 0 :(得分:2)

我应该将Fragments放在一个单独的LinearLayout中并改变那个权重。

像:

<LinearLayout 
    android:id="@+id/layout1"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_weight="70"

    <fragment
        android:id="@+id/menuFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        class="com.pack.Menufragment" >
    </fragment>
</LinearLayout>
<LinearLayout 
    android:id="@+id/layout2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="30"
    <fragment
        android:id="@+id/bodyFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.pack.BodyFragment" >
    </fragment>
</LinearLayout>

在Java中

LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
android.widget.LinearLayout.LayoutParams par = layout1.getLayoutParam();
par.weight = NEW value;

答案 1 :(得分:1)

请参阅this related question。 如果将每个片段封装在FrameLayouts中,然后为每个帧布局设置权重,则可以使用此方法。

答案 2 :(得分:0)

您可能想看看它在此线程中对RelativeLayout的完成情况: Android - How do I specify weight programmatically for a RelativeLayout? 应该与我假设的片段的布局参数类似,没有尝试过,所以我不会保证你是否会这样做。