如果屏幕足够大,我需要一个ScrollView在其中心显示内容,否则它应该显示滚动。
以下是我用于测试的示例代码
<ScrollView
android:id="@+id/maincontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/admob"
android:layout_below="@id/app_bar">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abc1\nabc2\nabc3\nabc4\nabc5\nabc6\nabc7\nabc8\nabc9\nabc10\nabc11\nabc12\nabc13\nabc14\nabc15\nabc16\nabc17\nabc18\nabc19\nabc20\nabc21"
android:textSize="35sp"
android:textStyle="bold"/>
</LinearLayout>
</ScrollView>
我的应用需要在滚动视图中显示,从abc1到abc21。但是它显示从abc 5到abc21以及额外的底部空间。检查下面攻击的屏幕截图:
这是显示从abc5而不是abc1开始的textview的图片:
这是显示文字视图下方额外空间的图片:
额外的空间测量对文本视图中缺失的部分是正确的,并且问题只有在滚动需要发生时才会消失(即,如果内容适合屏幕并且不需要滚动 - 当内容更多并且滚动时它们出现问题需要然后问题来了。)
更新1 : - 添加了一些风景图片
热门 额外空间 结束
更新2:一旦我删除了layout_gravity =“center”,问题就解决了,但我需要该属性。因为我的内容是动态的,当需要显示小内容时,它应该显示在中心而不是顶部(当我删除该属性时会发生),当内容很大时,它需要显示滚动。
答案 0 :(得分:2)
这解决了我的问题: -
只需添加android:fillViewport =&#34; true&#34;在滚动视图中,您还可以从它的子项中删除layout_gravity属性,但您可以完成此案例。
有关详情,请查看: - http://pivotallabs.com/centering-a-view-within-a-scrollview/
答案 1 :(得分:0)
这2个问题解决了问题:
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" //this attr
android:layout_gravity="center"> //and this
</ScrollView>