Пользовательский вид отлично работает в Ice Cream Sandwich, но onDraw не вызывается в Gingerbread.

Я создал собственное представление, расширив представление, оно рисует простой график, я добавляю его в свой макет, используя:

GraphView graphView = new GraphView(this, values, titles, "Title");
LinearLayout scrollViewLinearLayout = (LinearLayout) findViewById(R.id.scrollViewLinearLayout);
scrollViewLinearLayout.addView(graphView);

Он отлично работает под Android 4.0, но не отображается под Android 2.33. На самом деле onDraw даже не вызывается под Android 2.33. Похоже, что onMeasure вызывается, потому что scrollView, к которому добавляется представление, расширяется, чтобы разрешить вертикальную прокрутку.

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int height = (titles.length * (24 + 20)) + 80 + (5 / 2) + 10;
    setMeasuredDimension(LayoutParams.FILL_PARENT, height);
}

person Peter Willsey    schedule 19.06.2012    source источник


Ответы (1)


Я понял, что под Gingerbread установка LayoutParams.FILL_PARENT, похоже, не имеет никакого эффекта, как только я попытался ввести значение, равное ширине экрана, все заработало правильно.

person Peter Willsey    schedule 20.06.2012