White line at the bottom of the screen (LinearLayout)
我正在为我的应用程序登录屏幕。 问题是我在每个设备和模拟器上的屏幕底部都有一条白线。
你可以在这里查看输出:
这是我布局的xml代码。 请注意,我在所有设备之间使用layout_weight属性来获得相等的空间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | <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> |
哪里有错
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <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> |
实际上你的最后一个布局不是
试试这个
我认为你应该尝试相对布局。如果你有一个填充整个屏幕的相对布局你应该能够使用android:layout_alignParentBottom将按钮移动到屏幕的底部。礼貌
要么
您可以使用LinearLayout android:weightSum属性。
What is android:weightSum in android, and how does it work?
我有同样的问题,并将LinearLayout的
白色边框仅在我的应用程序中的一个"幻灯片"上显示。我不确定,但我认为我们展示的图像会对此产生影响。
当然,改变layout_height并不是我们总能做到的。它更像是一种解决方法,而不是一种合适的解决方案。
我找到修复1dp线问题的最简单方法是扩大您用于权重的值。
一种简单的方法是缩放每个权重,直到没有小数点为止,例如:
1 | android:layout_weight="0.2" |
会成为
1 | android:layout_weight"2" |
如果将此乘数应用于布局中的每个权重,则它们应保持相同的比例但底部没有线。
我不能肯定地说,但我的假设是使用较小的十进制值会导致Android出现一些舍入错误 - 将不需要的1dp行留在布局的底部。