HorizontalScrollView с четырьмя RelativeLayout, каждый из которых занимает весь экран
У меня проблема с созданием HorizontalScrollView
на Android, который будет служить учебным пособием.
Этот ScrollView содержит LinearLayout с горизонтальной ориентацией, а внутри есть 4 RelativeLayout, каждый из которых должен заполнять экран.
Но если я установлю layout_width = "match_parent"
на каждом RelativeLayout это не работает вообще, но это как будто было установлено "wrap_content"
layout_width
ScrollView установлен как "wrap_content"
и на LinearLayout устанавливается как "0dp"
, но меняя это я не видел никаких изменений.
Как я могу решить проблему? Спасибо
3 ответа
Кажется, ваша ширина RelativeLayout установлена на match_parent
родительского LinearLayout, который является0dp
,
Попробуйте придать вашей LinearLayout некоторую ширину
Кстати, почему вы должны использовать HorizontalScrollView
Использовать ViewPager
Вместо этого. Подробнее о viewpager здесь
пример
в вашем parent_layout.xml
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
Вы можете найти больше о коде на GitHub
int size = horizontalScrollView.getChildCount();
int screenW =getResources().getDisplayMetrics().widthPixels;
for(int i = 0 ;i <size ;i++){
View v = horizontalScrollView.getChildAt(i);
ViewGroup.LayoutParams lp = v.getLayoutParams();
lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
lp.width = screenW;
v.setLayoutParams(lp);
}
Когда вы используете представление прокрутки, вы должны использовать ширину Относительного макета в фиксированном dp, например 300dp или 200 dp, в противном случае представление прокрутки принимает свою ширину, как это требуется, например wrap_content
так что используйте так layout_width = "200dp"