我在MarshMallow
设备上进行了测试。当我为EditText
编写xml并将PaddingBottom
设置为Retype EditText
时。但它不起作用。但是当我将PaddingLeft
设置为New PassWord
EditText
时工作正常。
xml代码:
<EditText
android:id="@+id/change_password_old_password_edittext"
android:layout_below="@+id/change_password_mobileNumber_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Old Password"
android:layout_marginTop="20.0dip"
android:textColorHint="#40000000"
android:textSize="@dimen/textsize16"/>
<EditText
android:id="@+id/change_password_new_password_edittext"
android:layout_below="@+id/change_password_old_password_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="New Password"
android:layout_marginTop="20.0dip"
android:textColorHint="#40000000"
android:paddingLeft="10dip"
android:textSize="@dimen/textsize16"/>
<EditText
android:id="@+id/change_password_retype_password_edittext"
android:layout_below="@+id/change_password_new_password_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Retype Password"
android:layout_marginTop="20.0dip"
android:paddingBottom="10dip"
android:textColorHint="#40000000"
android:textSize="@dimen/textsize16"/>
ScreenShot:
然后我决定以编程方式设置PaddingBottom
。但它给出了奇怪的输出。
java代码:
在OnCreate
方法
EditText change_password_retype_password_edittext = (EditText)findViewById(R.id.change_password_retype_password_edittext);
change_password_retype_password_edittext.setPadding(0,0,0,10);
输出
注意:我已经在
Marshmallow
,LolliPop
和Jellybean
进行了测试。但是在所有设备中都没有工作。
答案 0 :(得分:4)
您没有指定已设置的填充单位,因此默认情况下pixel
小于dp
,因此结果不符合您的预期。
将像素转换为dp,您将获得解决方案:
int paddingPixel = 10;
float density = getResources().getDisplayMetrics().density;
int paddingDp = (int)(paddingPixel * density);
change_password_retype_password_edittext.setPadding(0,0,0,paddingDp);
有关详细信息,请访问:Add padding on view programmatically
答案 1 :(得分:0)