旋转后,Android ScrollView无法填满整个屏幕宽度

时间:2015-07-11 20:07:22

标签: android scrollview screen-orientation android-scrollview screen-rotation

我的应用程序工作正常,只有一个问题:当屏幕水平放置时,ScrollView不会填充父级。 xml的一部分是:

<HorizontalScrollView
    android:id="@+id/hsvShowDay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff00ff00"
    android:padding="5dp" >

    <ScrollView
        android:id="@+id/svShowDay"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffff0000"
        android:padding="5dp" >

        <TableLayout
            android:id="@+id/tlShowDay"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:isScrollContainer="true" >

            <TableRow
                android:id="@+id/trEmptyRow" >                    
            </TableRow>

        </TableLayout>

    </ScrollView>

</HorizontalScrollView>

我已经尝试过设置

android:fillViewport=true

以及在onCreate方法中重置布局参数,如下所示:

ScrollView svCalendar = (ScrollView)findViewById(R.id.svShowDay);
ScrollView.LayoutParams params = new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT,ScrollView.LayoutParams.MATCH_PARENT);
svCalendar.setLayoutParams(params);

谁能告诉我,我做错了什么?有什么我需要改变的吗?非常感谢你提前!

3 个答案:

答案 0 :(得分:2)

尝试在Horizo​​ntalScrollView和ScrollView之间添加另一个布局。

Offtop:

  1. 并使用match_parent而不是fill_parent
  2. 无论如何为所有ScrollView添加“android:fillViewport = true”

答案 1 :(得分:1)

今天早上我尝试再次将android:fillViewport="true"添加到ScrollView。它仍然无法正常工作,但由于两个答案都建议我添加它,我尝试将其添加到Horizo​​ntalScrollView,然后我的应用程序最终获得了我期望的功能。

简而言之,答案是将android:fillViewport="true"添加到Horizo​​ntalScrollView。

PS:当我还将android:fillViewport="true"添加到ScrollView时,TableLayout会在我的ScrollView中间居中。 (我的应用程序不需要这个,但有一天它可以帮助其他人。)

感谢两个答案让我朝着正确的方向前进!

答案 2 :(得分:0)

你忘记了

  滚动视图的

android:fillViewport =“true”

旁注

拥有两个嵌套的滚动视图容器是一个坏主意。可能是滚动/调整大小问题的原因。

我不确定滚动视图到水平滚动视图的目的是什么,但如果要实现水平和垂直滚动视图,最好使用"." "web"]ENTRYPOINT ["dnx", ".", "web"]