Android - 如何在LinearLayout中居我的自定义视图?

时间:2015-08-07 04:21:41

标签: android layout center

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal">

    <com.example.root.howold.MyRing
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

我也尝试设置 gravity layout_gravity ,但它们实际上不起作用。

如何在布局中制作MyRing(我的自定义视图)中心

4 个答案:

答案 0 :(得分:4)

Try this:-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.example.root.howold.MyRing
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

答案 1 :(得分:0)

阅读本文: Gravity and layout_gravity on Android

要使视图对齐居中,您可以:

LinearLayout case1:
“android:gravity”是它的儿童观点。 如果这不起作用,请检查它的父视图的宽度和高度。 并且,将父级的宽度和高度设置为更大的大小。

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >

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


LinearLayout case2:
“android:layout_gravity”是自己的,如果父视图有空格。

 <LinearLayout
    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:layout_gravity="center"
        android:text="TEST" />
</LinearLayout>


RelativeLayout的
您可以对RelativeLayout使用“android:layout_centerInParent”。

   <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="TEST" />
</RelativeLayout>

答案 2 :(得分:0)

如果您使用根布局作为线性布局。您可以使用以下文本将自定义视图设置为居中。

取决于您的要求,您可以

 layout_gravity="center"

(或)

layout_gravity="center_vertical" 

(或)

layout_gravity="center_horizontal"

以下是具有自定义视图的xml。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

 <!-- Here you may some other views -->

   <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center">

    <com.purpletalk.root.sampledemo.MyRing
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="hellooooo" />
   </LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

如果您使用的是线性布局,

选项1:将android:gravity添加到父视图,以使其所有子项居中           观点。 示例:

<LinearLayout
           android:gravity="center">
           <TextView/>   
           <TextView/>  // Both these textviews will be aligned center
           </LinearLayout>

选项2:如果您只想居中一个子视图,则添加该属性           {child}标记的android:layout_gravity="center"

<LinearLayout>
           <TextView
            android:layout_gravity="center"  // Only this textview will be aligned center
           />
           <TextView/>
           </LinearLayout>