Android ScrollView旋转后无法填满整个屏幕宽度
我的应用工作正常,只有一个问题:当屏幕水平放置时,ScrollView不会填充父级。 的XML的部分是:Android ScrollView旋转后无法填满整个屏幕宽度
<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>
我已经尝试在onCreate方法设置
android:fillViewport=true
以及重新布局参数,像这样:
ScrollView svCalendar = (ScrollView)findViewById(R.id.svShowDay);
ScrollView.LayoutParams params = new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT,ScrollView.LayoutParams.MATCH_PARENT);
svCalendar.setLayoutParams(params);
任何人都可以告诉我,我做错了什么?有什么我需要改变?非常感谢您提前!
今天早上我试着再次加入android:fillViewport="true"
到ScrollView。它仍然没有工作,但作为两个答案都建议我添加它,我试着将它添加到HorizontalScrollView,并且我的应用程序终于获得了我期望的功能。
所以总之,答案是将android:fillViewport="true"
添加到HorizontalScrollView。
PS:当我还将android:fillViewport="true"
添加到ScrollView时,TableLayout将居中在我的ScrollView中间。 (这是我的应用程序不需要的,但它可以帮助别人有一天。)
感谢您的两个答案,我推动了正确的方向!
尝试在HorizontalScrollView和ScrollView之间添加另一个布局。
Offtop:
- 并使用match_parent代替FILL_PARENT
- 添加 “机器人:fillViewport =真正的” 所有滚动型的反正
非常感谢您的意见。不幸的是,增加另一个布局并没有解决我的问题。出于兼容性原因,我使用fill_parent。 (表格布局中的“match_parent”是由于测试,如果改变它会导致不同的结果。)'android:fillViewport'终于解决了我的问题,但我不得不将它添加到HorizontalScrollView。 – guicor
不错!对于未来:无论如何,为所有滚动视图添加“fillViewport = true”) – Tronum
嗯,我通常会同意,但在我的情况下,添加fillViewport =“true”到ScrollView实际上弄乱了设计。但是我肯定会每次都添加它,因为我不能按照我预期的那样填满整个屏幕! – guicor
你忘
机器人:fillViewport =您的滚动视图为“true”
旁注
有两个嵌套的滚动视图容器是一个坏主意。可能是滚动/调整大小问题的原因。
我不确定将视图滚动到水平滚动视图的目的是什么,但是如果要实现水平和垂直滚动视图,最好使用GridView
或RecyclerView
。
非常感谢您的意见。我确实缺少android:fillViewport =“true”',但我必须将其添加到HorizontalScrollView。你能否详细说明为什么两个嵌套的滚动视图容器是一个坏主意?这种嵌套是我找到的唯一解决方案,它允许我向下滚动或向侧面滚动,而不会同时进行两次。那么GridView或RecyclerView如何用于实现双向滚动? (当我搜索它时,我只发现了一些使用类似技巧的命题。)预先感谢帮助我更好地理解Android。 – guicor
我一直在尝试在过去2天内完成此操作,但不知何故,它曾用于平板电脑和手机,当我使用HorizontalScrollView时,第一个元素用于在手机上裁剪,但在平板电脑上正常工作, android:fillViewport =“true”解决了我的问题,非常感谢。 – API