获得第二季度布局的高度

时间:2016-03-23 12:07:37

标签: android android-layout

我在设计应用时遇到了一些困难。我的屏幕应包含工具栏和一些编辑字段。这些字段应位于工具栏下方屏幕的上半部分。最后它看起来应该是这样的(抱歉图像质量):

enter image description here

为此,我决定将屏幕高度分成四个等于零件并在第二季度构建我的编辑字段。我尝试使用以下代码来实现这一点,但它并没有帮助:所有较小的相对布局都占据了整个屏幕。 我也尝试过:

  • 用线性布局替换父相对布局

  • 替换" fill_parent"使用" wrap_content"。

在这些操作之后,较小的布局就会消失。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"      > 


    <include android:id = "@+id/toolbarLogo" layout="@layout/toolbar_logo"></include>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.25"
        />
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.25"
        >

        <EditText
            .../>

        <EditText
            ...
            />

        <Button
            .../>    

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.5"
        />

</RelativeLayout>

你能帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

将根布局更改为LinearLayout,并确保方向设置为垂直。将子项的layout_width更改为1.请参阅下面的代码示例:

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#f00"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#0f0"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#00f"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#f0f"/>

</LinearLayout>

答案 1 :(得分:0)

试一试..设置

android:layout_weight="1" 
每个LinearLayout和

设置

android:weightSum="4"

表示ParentLayout和

喜欢这个例子..

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#0ff"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#ff2"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#01a"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#101"/>

</LinearLayout>

</RelativeLayout>

答案 2 :(得分:0)

您可以将google库PercentRelativeLayout与此library一起使用,您可以设置宽度高度边距 procentege的观点非常棒,因为在所有的屏幕中它们看起来都一样,当然也不难编码。这里的例子:

<android.support.percent.PercentRelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentRelativeLayout>

您必须在build.gradle中添加此行

dependencies {
    compile 'com.android.support:percent:23.2.0'
}

Google的官方文档 https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html

对于你的情况应该看起来像这样:

    <RelativeLayout
        android:id="@+id/firstLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_heightPercent="10%"
        />

    <LinearLayout
        android:id="@+id/secondLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/firstLayout"
        android:orientation="vertical"
        app:layout_heightPercent="40%">

        <EditText
            android:layout_width="200dp"
            android:layout_height="60dp"/>

        <EditText
            android:layout_width="200dp"
            android:layout_height="60dp"/>

        <Button
            android:layout_width="200dp"
            android:layout_height="60dp"/>

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/secondLayout"
        app:layout_heightPercent="30%"

        />

</android.support.percent.PercentRelativeLayout>

希望这有帮助。