Высота EditText в просмотре списка не соответствует высоте строки - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть вид, аналогичный примеру 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 (где я получил 48 для EditText)
  • hdpi: 72 x 72px
  • xhdpi: 96 x 96px

, почему мой EditText не масштабируетсяправильно?

1 Ответ

1 голос
/ 11 ноября 2011

Я думаю, у вас проблемы с фоновым изображением для EditText.Явно установите фон для цветного или XML-ресурса и посмотрите, изменит ли это ситуацию.

Я бы также посмотрел, работает ли WRAP_CONTENT вместо числа с фиксированной высотой, и если это так, поэкспериментируйте с параметрами после этого..

Если ничего из этого не работает, убедитесь, что вы установили отступы И поля как для пользовательского макета, так и для EditText равными нулю.

По сути, идея состоит в том, чтобы попробовать эти вещи, получить положительный результатрезультат, то вы можете удалить вещи один за другим, чтобы увидеть, что действительно сделало изменение.

...