2015-11-17 9 views
0

У меня возникла проблема с созданием HorizontalScrollView на Android, которое будет служить учебником.HorizontalScrollView с четырьмя RelativeLayout, каждый из которых занимает весь экран

Этот ScrollView содержит LinearLayout с горизонтальной ориентацией, а внутри есть 4 RelativeLayout, каждый из которых должен заполнять экран.

Но если я устанавливаю layout_width = "match_parent" на каждом RelativeLayout, это не работает на всех, но это, как это было установлено в "wrap_content"

layout_width из ScrollView устанавливается в "wrap_content" и на LinearLayout устанавливается как "0dp", но меняющегося этого я не видел никаких изменений.

Как я могу решить проблему? Спасибо

+0

Я предлагаю вам использовать ViewPager вместо горизонтальной ScrollView делать то, что вы пытаетесь сделать. – Sherekan

+0

@Sherekan спасибо, в чем разница? – Ilario

+0

ViewPager - это то, что вы хотите достичь, оно может автоматически прокручивать страницу на страницу. –

ответ

1

Кажется, ваша ширина RelativeLayout установлена ​​на match_parent родительского LinearLayout, который равен 0dp.

Попробуйте придать вашему LinearLayout некоторую ширину

Кстати почему вы должны использовать HorizontalScrollView, используйте ViewPager instead.More о ViewPager here

Пример

в вашем parent_layout.xml

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

Вы можете узнать больше о коде на GitHub

+0

спасибо за ваш ответ, но если я изменю ширину LinearLayout, ничего не изменится – Ilario

+0

@Ilario Что относительно 'layout_height' ? –

+0

layout_weight всегда match_parent .., но нет проблемы с высотой – Ilario

0
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); 
} 
0

при использовании режима прокрутки вы должны использовать ширину относительного расположения в починки дп как 300dp или 200 йр иначе прокрутки зрения принимать его ширину, как это требуется, как wrap_content

так использовать как этот layout_width = "200dp"

Смежные вопросы