为什么这个布局有一些空间?

时间:2013-11-26 12:35:51

标签: android android-layout android-linearlayout relativelayout

我使用此代码进行此布局。

<?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"
                android:layout_margin="20dp"
                android:background="@android:color/transparent">
    <LinearLayout
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_centerInParent="true"
            android:background="@drawable/rounded_white_bg">
        <EditText
                android:id="@+id/login"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:background="@drawable/dialog_edittex"
                android:layout_margin="10dp"/>
        <EditText
                android:id="@+id/password"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:layout_margin="10dp"
                android:background="@drawable/dialog_edittex"/>
        <TextView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="@android:color/black"
                android:text="AAAAAAAAAAAA"
                android:layout_gravity="center"
                android:textSize="20sp"
                />
        <ImageView
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:src="@drawable/dialog_button_bg"/>

    </LinearLayout>


</RelativeLayout>

rouded_whiite.bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff" />
    <corners
            android:radius="20dp"/>
</shape>

但是当我这样做时,我看到了这个结果。如您所见,红色按钮下方有一些边距。我没有设置任何余量或东西,但那里有一些空间。我应该怎么做才能获得精确的结果,如第一张图片。

enter image description here

5 个答案:

答案 0 :(得分:1)

使用:

android:layout_centerHorizontal="true"

而不是

android:layout_centerInParent="true"

并从底部删除保证金......

答案 1 :(得分:1)

RelativeLayout移除保证金并使LinearLayout重力android:layout_centerHorizontal="true"

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
           android:background="@android:color/transparent">
<LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_centerHorizontal="true"
        android:background="@drawable/rounded_white_bg">

答案 2 :(得分:0)

  <LinearLayout
        android:layout_height="wrap_content"

正因为如此。从线性布局中移除imageview并在相对布局中设置并将属性指定为alignparent bottom,对于线性布局,将alignparent置于图像视图属性的顶部和上方,

答案 3 :(得分:0)

试试这个

 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="20dp"
                android:background="@android:color/transparent">
    <LinearLayout
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:background="@drawable/rounded_white_bg">
        <EditText
                android:id="@+id/login"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:background="@drawable/dialog_edittex"
                android:layout_margin="10dp"/>
        <EditText
                android:id="@+id/password"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:layout_margin="10dp"
                android:background="@drawable/dialog_edittex"/>
        <TextView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="@android:color/black"
                android:text="AAAAAAAAAAAA"
                android:layout_gravity="center"
                android:textSize="20sp"
                />
        <ImageView
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:src="@drawable/dialog_button_bg"/>

    </LinearLayout>


</RelativeLayout>

答案 4 :(得分:0)

如果您使用drawable for imageview作为.png或.jpg使用以下drawable为您的图像可能会有所帮助。将其另存为backgroung_bg.xml或其他任何内容

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
    <shape >
        <corners android:bottomLeftRadius="20dp"
            android:bottomRightRadius="20dp"
            android:topLeftRadius="0dp"
            android:topRightRadius="0dp"/>
        <solid android:color="#CF4647"/>
        <padding android:left="5dp"
            android:top="5dp"
            android:right="5dp"
            android:bottom="5dp"/>
    </shape>
</item>

当你应用它时,你会得到以下警告,只需忽略并运行它。如果你需要渐变型的颜色问我

布局编辑器中的图形预览可能不准确: Path.addRoundRect不支持不同的边角大小。 (忽略此会话)