更改布局之间的大小

时间:2017-02-19 16:25:36

标签: java android xml fragment

我有LinearLayout。在其中,我有一些Fragments。我想在另一个Fragment中使用我的顶级Activity,但要保持完全相同的大小。我的问题是,下一个ActivityRelativeLayoutandroid:weightSum不可用。如何将我的维度从LinearLayout保留到RelativeLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/appmenu"
    android:weightSum="6.5">
    <fragment
        android:id="@+id/titlebar"
        class="com.abc.appname.titlebar"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
    <fragment
        android:id="@+id/mainmenubuttons"
        class="com.abc.appname.mainmenubuttons"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="4.5"/>
    <fragment
        android:id="@+id/bottombar"
        class="com.abc.appname.bottombar"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

</LinearLayout>

解决方案: 我使用了RelativeLayout Percentages,如下所示。我想请注意,我必须添加一些东西才能使其正常工作,包括:

在Gradle中:

 compile 'com.android.support:percent:23.3.0'

在XML中:

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

希望这有助于下一个人:)

1 个答案:

答案 0 :(得分:2)

使用 ParcentRelativeLayout https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html

简单实施

  <android.support.percent.PercentRelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/appmenu"
    >
    <fragment
        android:id="@+id/titlebar"
        class="com.abc.appname.titlebar"
        android:layout_width="fill_parent"

         app:layout_heightPercent="14.5%"/>
    <fragment
        android:id="@+id/mainmenubuttons"
        class="com.abc.appname.mainmenubuttons"
        android:layout_width="fill_parent"

         app:layout_heightPercent="69%"/>
    <fragment
        android:id="@+id/bottombar"
        class="com.abc.appname.bottombar"
        android:layout_width="fill_parent"

        app:layout_heightPercent="14.5%"/>

</LinearLayout>