我的申请存在问题。我最近添加了ScrollView作为LinearLayout的Parent。将设备方向翻转为横向时,我的按钮会在顶部被切断。当我向下滚动时,我可以看到最后一个按钮就好了,在它的末尾有额外的“黑色空间”,只有顶部被切掉了。我环顾四周,我不确定为什么会这样。这是一些图片,所以你可以理解它的外观。
<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>
答案 0 :(得分:20)
删除线性布局上的android:layout_gravity="center"
,当您将其更改为横向模式时,滚动视图的高度大于您的屏幕大小,因此它将线性布局的中心放在ScrollView中,尽管删除它可能不是解决方案,这就是造成这种情况的原因,
你可以考虑修改你的布局,使用listview来成功支持景观可能更有意义
答案 1 :(得分:2)
我知道这是一个老线程,但我花了两天时间解决这个问题。虽然删除“layout_gravity”语句确实有助于中断问题,但是关于无法居中的评论也是如此。最终对我有用的东西,在我看来是一个黑客,是将滚动视图置于布局的中心,两个线性布局作为孩子级联。高度和宽度也必须在scrollview和linearlayouts上包装内容。这不是最好的解决方案,但我尝试了一切都没有成功,包括如果对象小于屏幕大小宽度,则使用setlayoutparams在代码中设置重力。我希望这可以帮助别人。
答案 2 :(得分:0)
@slim所说的提示(删除android:layout_gravity="center"
)确实有效,但没有中心对齐。
我的解决方案:
我修复了主要的长布局,其中LinearLayout
的{{1}}设置为gravity
,并且center
保留为主要布局:
android:layout_gravity="center"