Я пытаюсь создать что-то похожее на макет домашнего экрана.Он состоит из нескольких вертикально ориентированных LinearLayout в одном горизонтально ориентированном LinearLayout, все они размещены в HorizontalScrollView.Я написал его как пользовательский класс с именем «HomeLayout», расширяющий HorizontalScrollView.
LinearLayout wrapper = new LinearLayout(getContext());
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
wrapper.setLayoutParams(params);
wrapper.setOrientation(LinearLayout.HORIZONTAL);
addView(wrapper);
for(int i = 0; i < 2; i++) {
LinearLayout linear = (LinearLayout) View.inflate(getContext(), R.layout.screens, null);
linear.setLayoutParams(params);
wrapper.addView(linear);
}
Проблема заключается в том, что «screen2» имеет ширину «0» при добавлении.
Это работает, только если я вызываю это в onDraw () и использую getMeasuredWidth () и getMeasuredHeight () вместо LayoutParams.FILL_PARENT.И даже тогда я не уверен, что это правильно.
Более того, я не могу ссылаться на представления 'wrapper', 'screen1', 'screen2' в onCreate ().
Я свободно перешел по этой ссылке: http://blog.velir.com/index.php/2010/11/17/android-snapping-horizontal-scroll/
Что я делаю не так?