这是片段视图的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更改片段权重大小,无论如何都要这样做吗?
答案 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? 应该与我假设的片段的布局参数类似,没有尝试过,所以我不会保证你是否会这样做。