listview中的EditText高度与行高不匹配

时间:2011-11-11 16:10:19

标签: android listview android-edittext margin

我有一个类似于我的适配器用于listview的CustomAdapter示例:

class FooView extends LinearLayout
{
    EditText mInputBox;

    public FooView(Context context)
    {
        this.setOrientation(HORIZONTAL);
        this.setPadding(0,0,0,0);
        mInputBox = new EditText(context);

        // formatted to fit on screen
        float dip = 
            TypedValue.applyDimension(
                COMPLEX_UNIT_DIP, 
                48.0f, 
                getResources().getDisplayMetrics());
        LayoutParams lp = 
            new LayoutParams(
                LayoutParams.FILL_PARENT, 
                (int)Math.ceil(dip), 
                1.0f);
        lp.setMargins(0,0,0,0);

        addView(mInputBox, lp);
    }
}

然而我在每行的EditView下面都有一个空格: wtf

我扩展了FooView并在顶部案例中添加了一个ImageButton(未在图片中添加)。在该视图中,ImageView完美地适合该行。

ImageButton b = new ImageButton(context);
b.setImageResource(R.drawable.foo);
b.setScaleType(ScaleType.CENTER_INSIDE); //also tried FIT_XY didnt notice a difference
addView(b, new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);

ImageButton的尺寸为:

  • ldpi:32 x 32px
  • mdpi:48 x 48px(我得到了EditText的48个)
  • hdpi:72 x 72px
  • xhdpi:96 x 96px

为什么我的EditText无法正确缩放?

1 个答案:

答案 0 :(得分:1)

我猜你会遇到EditText的背景图片问题。明确地将背景设置为颜色或XML资源,并查看是否会改变这种情况。

我还会看看WRAP_CONTENT是否有效而不是固定的高度数,如果是,请在此之后使用选项。

如果这些都不起作用,请确保将自定义布局和EditText上的填充和边距设置为零。

基本上我的想法是尝试这些东西,得到积极的结果,然后你可以逐个删除东西,看看究竟是什么导致了变化。