屏幕底部的白线(LinearLayout)

时间:2015-10-08 07:20:41

标签: android android-linearlayout

我正在为我的应用程序登录屏幕。问题是我在每个设备和模拟器上的屏幕底部都有一条白线。 你可以在这里查看输出: http://www.imgur.com/cTMu4Ap 这是我布局的xml代码。请注意,我在所有设备之间使用layout_weight属性来获得相等的空间。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="0.5"
        android:src="@mipmap/ic_launcher"
        android:layout_gravity="center"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical"
        android:paddingLeft="55dp"
        android:paddingRight="55dp"
        android:background="@color/colorPrimary"
        >
        <EditText
            android:id="@+id/edtEmailOrMobileNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/email_or_mobile_number"
            android:background="@null"
            android:inputType="textEmailAddress"
            android:textColor="@android:color/white"
            android:textColorHint="@android:color/white"
            android:drawableLeft="@drawable/ic_clear"

            android:layout_marginTop="64dp"
            />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@android:color/white"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            />
        <EditText
            android:id="@+id/edtPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/password"
            android:background="@null"
            android:inputType="textPassword"
            android:textColor="@android:color/white"
            android:textColorHint="@android:color/white"
            android:drawableLeft="@drawable/ic_clear"
            android:drawableRight="@drawable/ic_clear"

            android:layout_marginBottom="20dp"
            />
        <Button
            android:id="@+id/btnSignIn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/sign_in"
            android:layout_gravity="center"
            android:textColor="@color/blue_login_button"
            android:background="@drawable/rounded_corner_button_login_background"
            android:textAllCaps="false"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="@string/dont_have_an_account"
            android:layout_gravity="center"
            android:gravity="center|bottom"
            android:paddingBottom="30dp"
            android:textColor="@android:color/white"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.2"
        android:orientation="vertical"
        android:gravity="center"
        android:background="@drawable/button_create_account_background"
        android:clickable="true"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/create_an_account"
            android:textColor="@android:color/white"
            />
    </LinearLayout>

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

哪里有错误

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.2"
    android:orientation="vertical"
    android:gravity="center"
    android:background="@drawable/button_create_account_background"
    android:clickable="true"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/create_an_account"
        android:textColor="@android:color/white"
        />
</LinearLayout>

实际上你的最后一个布局不是purely底部。这就是为什么有问题。另一个问题android:layout_weight="0.2" android:layout_weight 不适合设置底部。< / p>

试试这个

我认为您应该尝试相对布局。如果您的相对布局填满整个屏幕,您应该可以使用android:layout_alignParentBottom将按钮移动到屏幕底部。 Courtesy

您可以使用LinearLayout android:weightSum财产。

  

What is android:weightSum in android, and how does it work?

答案 1 :(得分:0)

我找到修复1dp线路问题的最简单方法是扩大您用于权重的值。

一种简单的方法是缩放每个重量,直到没有小数点为止,例如:

android:layout_weight="0.2"

会变成

android:layout_weight"2"

如果您将此乘数应用于布局中的每个权重,则它们应保持相同的比例但底部没有线。

我无法肯定地说,但我的假设是使用较小的十进制值会导致Android出现一些舍入错误 - 将不需要的1dp行留在布局的底部。

答案 2 :(得分:0)

我遇到了同样的问题,将LinearLayout的android:layout_height="match_parent"更改为android:layout_height="fill_parent"解决了这个问题。

白色边框只显示在一个&#34;幻灯片上#34;在我的申请中。我不确定,但我认为我们展示的图像会对此产生影响。

当然,改变layout_height并不是我们总能做到的。它更像是一种解决方法,而不是一种适当的解决方案。