android: layout_gravity VS android: gravity
android: layout_gravity 是本元素对父元素的重力方向。
android: gravity 是本元素所有子元素的重力方向。【TextView中的文字居中】
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/startDownload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button1"
>
</Button>
<Button
android:layout_gravity="right"
android:id="@+id/startDownload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button2"
>
</Button>
</LinearLayout>
但这段代码就不起作用。。。
原因:当外面的 orientation="horizontal" 时,外层的 LinearLayout 排布内层 view 的方式是从左至右依次排布 , 所以对于一个 view( 例如 button) 来 说 , 就没有了左右的概念 , 只有上下的概念。
解决方法:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/startDownload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button1"
>
</Button>
<Button
android:layout_gravity="right"
android:id="@+id/startDownload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button2"
>
</Button>
</FrameLayout>
</LinearLayout>
套个 FrameLayout 即可。
更多相关文章
- Android screenOrientation 屏幕方向的设定与控制
- android manifest.xml中元素含义
- 详解Android中的屏幕方向
- Android 元素居中
- Android实现动态改变屏幕方向(Landscape & Portrait)
- android 骁龙相机预览宽度方向全屏
- Android如何让TextView子元素随着父元素的背景变化而改变字体颜
- android 相对定位布局方向 RelativeLayout