Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android相对布局中心每个元素_Android_Xml_Android Layout - Fatal编程技术网

Android相对布局中心每个元素

Android相对布局中心每个元素,android,xml,android-layout,Android,Xml,Android Layout,我在选项卡式布局中编写了一个片段,如下所示: 我希望所有内容(按钮、编辑文本和文本视图)都位于屏幕中央。我对安卓相当陌生,所以我的问题是:我能创建一个包含所有内容的“盒子”(就像我用蓝色画的那样)并将其垂直居中吗 在上面的图片中,你可以看到我需要什么。在这里可以找到XML代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/a

我在选项卡式布局中编写了一个片段,如下所示:

我希望所有内容(按钮、编辑文本和文本视图)都位于屏幕中央。我对安卓相当陌生,所以我的问题是:我能创建一个包含所有内容的“盒子”(就像我用蓝色画的那样)并将其垂直居中吗

在上面的图片中,你可以看到我需要什么。在这里可以找到XML代码

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

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp"
    android:gravity="center"
    android:text="@string/rad_grad"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#26D50D" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_below="@+id/textView2"
    android:layout_marginTop="20dp"
    android:hint="@string/hint1"
    android:ems="10" >

</EditText>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText1"
    android:layout_below="@+id/editText1"
    android:layout_marginTop="20dp"
    android:textSize="15dp"
    android:text="@string/convert" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:layout_toRightOf="@+id/button1"
    android:layout_marginLeft="20dp"
    android:ems="10"
    android:editable="false" >

    <requestFocus />
</EditText>

<View
    android:id="@+id/sepbar"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_alignParentLeft="true"
    android:layout_centerInParent="true"
    android:layout_below="@+id/button1"
    android:layout_marginTop="50dp"
    android:background="@android:color/darker_gray" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="40dp"
    android:gravity="center"
    android:text="@string/grad_rad"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#26D50D"
    android:layout_below="@+id/sepbar" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_marginTop="20dp"
    android:hint="@string/hint2"
    android:ems="10"
    android:layout_below="@+id/textView3" />

 <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText3"
    android:layout_below="@+id/editText3"
    android:layout_marginTop="20dp"
    android:textSize="15dp"
    android:text="@string/convert" />

<EditText
    android:id="@+id/editText4"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_alignBottom="@+id/button2"
    android:layout_toRightOf="@+id/button2"
    android:layout_marginLeft="20dp"
    android:ems="10"
    android:editable="false"
    android:gravity="center" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:text="@string/devname"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:gravity="center" />


尝试将相对布局包装为垂直线性布局


更新:仔细查看布局后,它应该可以工作。移除sepbar上的下方布局,并使其上方和下方的组件脱离

<View
    android:id="@+id/sepbar"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_alignParentLeft="true"
    android:layout_centerInParent="true"
 --> Remove me   android:layout_below="@+id/button1"
    android:layout_marginTop="50dp"
    android:background="@android:color/darker_gray" />
删除我android:layout_=“@+id/button1”
android:layout_marginTop=“50dp”
android:background=“@android:color/darker\u gray”/>

我不再经常使用相对布局,我使用相对布局时会有一些特定的情况,但我通常会发现自己使用更多的线性布局。“相对”是一个让人头疼的问题。

您可以使用垂直方向的线性布局。。。。最主要的是“概念”,您上面提供的布局最好与linearlayout而不是relativelayout一起使用,因为在relativelayout中,由于id更改,我们会产生很多涟漪效应。。。而上面的布局是单调型的“垂直”。。。根据我的经验,当我有无序的布局时,我更喜欢使用relativelayout,比如中间有一只熊,然后左上有一只鸟,右上有一个球,等等

至于蓝色的布局,这里是代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:android:gravity="center"
      android:orientation="vertical">

      <TextView
           android:layout_width="wrap_content" <!--(hear you can imagine like this if you give wrap content then linearlayout gravity will be used but if you use match_parent then u will have to use gravity here else android default ltr gravity will be used )-->
           android:layout_height="wrap_content"
           android:text="Radianti..."/>
      <EditText
           android:layout_width="match_parent"<!--(im using match_parent because its going to be this edittext child which needs gravity so the parent linearlayout gravity wont work on this edittext contents {child})-->
           android:layout_height="wrap_content"
           android:android:gravity="center"
           android:text="my edit text content..."/>

           <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:android:gravity="center"
             android:orientation="horizontal"<!--note this it will place itself vertically in parent now we can place its child contents horizontally-->
             >
              <Button
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="button"/>
              <EditText
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:android:gravity="center"
                  android:text="another etx"/>
             <!-- you can use layout_weight in linearlayout to give width in percentage value ranges from 0 1 i guess decimal is allowed i used like 0.4 and 0.6 so it means 40 percent and 60 percent you can read about it more... -->
         </LinearLayout>
 </LinearLayout>

android:layout\u height=“包装内容”
android:android:gravity=“中心”
android:text=“我的编辑文本内容…”/>
希望这将有助于您建立概念:)

谢谢

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:android:gravity="center"
      android:orientation="vertical">

      <TextView
           android:layout_width="wrap_content" <!--(hear you can imagine like this if you give wrap content then linearlayout gravity will be used but if you use match_parent then u will have to use gravity here else android default ltr gravity will be used )-->
           android:layout_height="wrap_content"
           android:text="Radianti..."/>
      <EditText
           android:layout_width="match_parent"<!--(im using match_parent because its going to be this edittext child which needs gravity so the parent linearlayout gravity wont work on this edittext contents {child})-->
           android:layout_height="wrap_content"
           android:android:gravity="center"
           android:text="my edit text content..."/>

           <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:android:gravity="center"
             android:orientation="horizontal"<!--note this it will place itself vertically in parent now we can place its child contents horizontally-->
             >
              <Button
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="button"/>
              <EditText
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:android:gravity="center"
                  android:text="another etx"/>
             <!-- you can use layout_weight in linearlayout to give width in percentage value ranges from 0 1 i guess decimal is allowed i used like 0.4 and 0.6 so it means 40 percent and 60 percent you can read about it more... -->
         </LinearLayout>
 </LinearLayout>