将FrameLayout指定为父RelativeLayout的一半

时间:2015-08-02 13:18:22

标签: android android-layout relativelayout

我在相对布局中有一个框架布局,其他所有内容都位于它下面。 如何使这个框架布局占据整个屏幕的一半?

我尝试过重量,但它没有改变任何东西......

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/mainLayoutStyle">

<FrameLayout 
       android:id="@+id/codeLayout"
       style="@style/codeLayoutLargeStyle">   

        <TextView 
            android:id="@+id/DisplayTextView"
            style="@style/DisplayTextViewLargeStyle"/>
</FrameLayout>
......
.....
   <LinearLayout 

3 个答案:

答案 0 :(得分:2)

  

我在相对布局中有一个框架布局,其他一切都位于它下面

然后你使用错误的布局作为你的父母。您应该将RelativeLayout替换为LinearLayout,将FrameLayout高度设置为match_parentandroid:layout_weight="1",然后将所需的每个内容包裹在所需的任何内容(相对,线性等),以确保它也设置了如上所述的高度和layout_weight。然后你将获得50%-50%的高度分割

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

    <FrameLayout
        android:layout_weight="1"
        android:background="#ff0000"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <RelativeLayout
        android:layout_weight="1"
        android:background="#0000ff"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

enter image description here

答案 1 :(得分:0)

重量仅适用于线性布局,而不适用于相对布局

    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/mainLayoutStyle"
    android:weightSum="100">

    <FrameLayout 
        android:id="@+id/codeLayout1"
        style="@style/codeLayoutLargeStyle"
android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="50">   

    </FrameLayout>


    <FrameLayout 
        android:id="@+id/codeLayout2"
        style="@style/codeLayoutLargeStyle"
android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="50">   

    </FrameLayout>

    </LinearLayout>

给每个布局高度0dp和权重50,并给出线性布局权重总和100

答案 2 :(得分:0)

Marcin是对的,Weight Property只有在您将父布局作为线性布局并且使您的框架布局覆盖半屏时才有效,您必须将两个布局作为该线性布局的子级并划分相等的权重。 / p>

e.g

if (1 == 5) // FALSE:

希望这对你有所帮助。