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"

Другие вопросы по тегам