我有LinearLayout(视频按钮容器)和图像按钮作为它的孩子。我希望该视频按钮正确对齐,所以我给了它layout_gravity="right"
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<!-- VIDEO BUTTON CONTAINER -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#000000"
android:layout_gravity="top">
<!-- VIDEO BUTTON -->
<ImageButton
android:id="@+id/button_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/desc"
android:paddingBottom="@dimen/controls_button_padding"
android:paddingTop="@dimen/controls_button_padding"
android:src="@drawable/ic_action_video" />
</LinearLayout>
<!-- some FrameLayout and another LinearLayout -->
</LinearLayout>
它产生了这个:
我想要的是:
我通过将视频按钮容器的android:orientation="horizontal"
更改为android:orientation="vertical"
来实现这一点。
发生了什么?为什么它不适用于容器的水平方向?
答案 0 :(得分:8)
如果容器是水平的,则应该按顺序从左到右堆叠元素。现在,如果是这种情况,它如何在保持原始前提的同时水平满足布局重力?
水平重力(右,左,中)将在垂直LinearLayout中工作,垂直重力(上,下)将在水平LinearLayout中工作。
答案 1 :(得分:2)
刚刚放
重力= “右”
进入水平线性布局,应该可以做到这一点:)
在我的情况下效果很好(只是基于你的布局的例子):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<!-- VIDEO BUTTON CONTAINER -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#000000"
android:gravity="right">
<!-- VIDEO BUTTON -->
<ImageButton
android:id="@+id/button_video"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="10dp"
android:background="@android:color/background_light"/>
</LinearLayout>
<!-- some FrameLayout and another LinearLayout -->
</LinearLayout>
- 编辑 -
关于LinearLayout的方向:vertical和horizontal允许定义布局中的子项将以哪种方式水平或垂直放置在彼此旁边。
“重力”属性允许您控制布局的锚点,在您的情况下应该位于布局的右侧。