以编程方式为EditText小部件设置填充值时,默认填充值会导致问题

时间:2018-09-21 16:31:12

标签: android android-layout android-edittext android-view

我试图以编程方式设置EditText小部件,但是根据设备的不同,我的EditText填充在视觉和数字上可能会有所不同。设置了仅带有EditText的简单空白项目后,我意识到默认的填充值因设备而异(例如,仿真的Nexus 6填充了{6,15,6,16},而仿真的Pixel 2填充了{10,26, 10,29})。

在我将物理设备(三星S5)的默认padding-left设置为0时,默认值并不是什么大问题。

我看过documentation,但没有帮助(也许我看错地方了吗?)。现在,我有一个简单的解决方法:

public void setPadding(int left, int top, int right, int bottom) {
    if(left == 0) {
        left = 6;
    }
    if(top == 0) {
        top = 15;
    }
    if(right == 0) {
        right = 6;
    }
    if(bottom == 0) {
        bottom = 16;
    }
    editText.setPadding((int)(left * scalingFactor),
            top,
            (int)(right * scalingFactor),
            bottom);
}

我传入了editText的默认填充值(即editText.getPaddingLeft())作为参数。

目前,它一直有效,但是我讨厌使用幻数,并且我想对于不同的设备它将失败。是我错过了一些通用的默认填充,还是以编程方式设置了我刚刚错过的这些值?

0 个答案:

没有答案