Android中如何让控件居中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中如何让控件居中相关的知识,希望对你有一定的参考价值。

方法一:设置父布局的属性,但是framelayout是没有居中效果的

线性布局linearlayout和相对布局relativelayout比较常用


下面是两个textview在LinearLayout线性布局下的效果

<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:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text1" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text2" />
    
</LinearLayout>



可以看到两个textview居中了

在RelativeLayout中同样的效果


方法二:单独设置view的居中属性为

在linearlayout中只能是布局方向居中,设置android:layout_gravity属性

<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" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text1"
        android:layout_gravity="center"
        android:textSize="30sp" />
    
</LinearLayout>


可以看到只有横向居中


在Relativelayout中设置android:layout_inParent属性为true

<RelativeLayout 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" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text1"
        android:layout_centerInParent="true"
        android:textSize="30sp" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text2"
        android:textSize="30sp" />
</RelativeLayout>

可以看到只有textview1是居中的

参考技术A 以至于设置的时候,图标都在界外了。打开packages/app/Settings里的res/layout-sw720dp/lockscreen_targets.xml对于横屏和竖屏两种情况,其实应该定义两个目录一种叫做land,另一种叫做port(都是缩写),分别对应横屏和竖屏。这里就增加一个目录layout-sw720dp-land/作为横屏的配置, layout-sw720dp为竖屏。对于竖屏的情况--- a/res/layout-sw720dp/lockscreen_targets.xml+++ b/res/layout-sw720dp/lockscreen_targets.xml@@ -26,7 +26,7 @@Android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="0.9"- android:gravity="left|top"+ android:gravity="top"prvandroid:targetDrawables="@*android:array/lockscreen_targets_with_camera"prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_with_camera"prvandroid:directionDescriptions="@*android:array/lockscreen_direction_descriptions"对于横屏将+ android:gravity="top"改为+ android:gravity="left".就可以居中显示了。更保险的方法是本回答被提问者采纳

以上是关于Android中如何让控件居中的主要内容,如果未能解决你的问题,请参考以下文章

在android中如何让布局居中

android 不居中界面限制了控件个数,控件太多就满了怎么办,附图,最后一行

Android开发,如何让PopupWindow弹出时外部控件不可点击?

android 代码中设置控件的垂直居中和两个控件之间的距离。

android 代码中设置控件的垂直居中和两个控件之间的距离。

QtableWidget表格中添加控件怎么居中