我的应用程序出现了问题。我最近添加了ScrollView作为LinearLayout的父级。当我将设备方向翻转为横向时,我的按钮在顶部被切断。当我向下滚动时,我可以看到最后一个按钮,在它的末尾有额外的“黑色空间”。只有顶部被切断。我环顾四周,我不知道为什么会发生这种情况。这里有一些图片,这样你就可以了解它的样子。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center_vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">
<Button
android:id="@+id/BeefButton"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_gravity="center"
android:background="@drawable/backgroundlayer"
android:drawableLeft="@drawable/beefbutton"
android:text="Beef"
android:textColor="#FFFFFF"
android:textSize="32px"
android:textColorHighlight="#FF6600"/>
<Button
android:id="@+id/PoultryButton"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="match_parent"
android:background="@drawable/backgroundlayer"
android:drawableLeft="@drawable/chickenbutton"
android:text="Poultry"
android:textColor="#FFFFFF"
android:textSize="32px"
android:textColorHighlight="#FF6600"/>
<Button
android:id="@+id/FishButton"
android:layout_height="wrap_content"
android:background="@drawable/backgroundlayer"
android:drawableLeft="@drawable/fishbutton"
android:text="Fish"
android:textColor="#FFFFFF"
android:textSize="32px"
android:textColorHighlight="#FF6600"
android:layout_gravity="center"
android:layout_width="match_parent"/>
<Button
android:id="@+id/PorkButton"
android:layout_height="wrap_content"
android:background="@drawable/backgroundlayer"
android:drawableLeft="@drawable/porkbutton"
android:text="Pork"
android:textColor="#FFFFFF"
android:textSize="32px"
android:textColorHighlight="#FF6600"
android:layout_gravity="center"
android:layout_width="match_parent"/>
<Button
android:id="@+id/VegetablesButton"
android:layout_height="wrap_content"
android:background="@drawable/backgroundlayer"
android:drawableLeft="@drawable/vegetablesbutton"
android:text="Vegetables"
android:textColor="#FFFFFF"
android:textSize="32px"
android:textColorHighlight="#FF6600"
android:layout_gravity="center"
android:layout_width="match_parent"/>
</LinearLayout>
</ScrollView>
4条答案
按热度按时间gg0vcinb1#
删除linearlayout上的
android:layout_gravity="center"
,当您将其更改为横向模式时,滚动视图的高度大于您的屏幕大小,因此它将linearlayout居中显示在滚动视图中,尽管删除它可能不是解决方案,但这正是导致此问题的原因,你可以考虑修改你的布局,它可能会更有意义,使用一个列表视图,能够成功地支持景观
plicqrtu2#
我知道这是一个旧的线程,但我花了两天的时间在这个问题上。虽然删除“布局_重力”语句确实有助于切断问题,但关于无法居中的评论也是正确的。最终对我有效的,在我看来是一个黑客,将滚动视图放在一个居中布局的顶部,并将两个线性布局级联为子布局。此外,高度和宽度必须在scrollview和linearlayouts上 Package 内容。这不是最好的解决方案,但我尝试了所有的方法都没有成功,包括如果对象小于屏幕大小宽度,用setlayoutparams在代码中设置重力。我希望这能帮助一些人。
af7jpaap3#
@slim说的提示(删除
android:layout_gravity="center"
)确实有效,但没有中心对齐。我的解决方案:
我修复了这个问题,用
LinearLayout
Package 主长布局,将其gravity
设置为center
,并让android:layout_gravity="center"
保留用于主布局:qc6wkl3g4#
可以将
android:layout_gravitiy="center"
与android:fillViewport="true"
一起使用示例:横向(Kotlin)xml中无截断的中心框: