【问题标题】:how to center table layout inside relative layout如何在相对布局中居中表格布局
【发布时间】:2014-06-13 19:21:05
【问题描述】:

我有一个表格布局,每行包含两个编辑文本和一个微调器, 我想把它放在相对布局的中心,但我无法绕过它。

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

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:src="@drawable/SomePhoto" />

<TableLayout 
    android:layout_centerHorizontal="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="40dp"
    android:clickable="false"
    android:duplicateParentState="false"
    android:focusable="false"
    android:layoutDirection="rtl"
    android:focusableInTouchMode="false"
    android:longClickable="false"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:baselineAligned="true" >

    <EditText
        android:id="@+id/editText_4_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:duplicateParentState="false"
        android:ems="5"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:freezesText="false"
        android:gravity="center_vertical|center_horizontal"
        android:inputType="none"
        android:longClickable="false"
        android:scrollHorizontally="false"
        android:text="Course"
        android:textAllCaps="false" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_4_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:duplicateParentState="false"
        android:ems="6"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:gravity="center_vertical|center_horizontal"
        android:inputType="none"
        android:longClickable="false"
        android:text="credit hours"
        android:layout_centerHorizontal="true" />

    <EditText
        android:id="@+id/editText_4_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:duplicateParentState="false"
        android:ems="4"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:gravity="center_vertical|center_horizontal"
        android:inputType="none"
        android:longClickable="false"
        android:text="Grades" />

</TableRow>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="24.67" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >


<TableRow
    android:id="@+id/tableRow2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/editText_4_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="4"
        android:gravity="center_vertical|center_horizontal"
        android:hint="course_1"
        android:maxLines="1" />

    <EditText
        android:id="@+id/editText_4_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="6"
        android:gravity="center_vertical|center_horizontal"
        android:inputType="number"
        android:text="0" />

    <Spinner
        android:id="@+id/spinner_4_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</TableRow>



<RelativeLayout
    android:id="@+id/tableRow13"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:baselineAligned="true" >



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

        <Button
            android:background="@drawable/ResetBtn"
            android:id="@+id/button_4_1"
            android:layout_marginLeft="70dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            /> 
        <Button
        android:background="@drawable/CalculateBtn"
        android:id="@+id/button_4_2"
        android:layout_toRightOf="@+id/button_4_1"
        android:layout_marginLeft="90dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />
    </RelativeLayout>


</RelativeLayout>
</TableLayout>
</ScrollView>

<com.mopub.mobileads.MoPubView
android:id="@+id/adview"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
/>

</TableLayout>

</RelativeLayout>

任何有关如何解决此问题的帮助将不胜感激。 谢谢x

【问题讨论】:

  • android:centerInParent="true" 添加到您的 TableLayout
  • 使用android:gravity="center_horizontal" 而不是android:layout_gravity="center_horizontal"
  • 参考this question
  • 为什么你在 TableLayout 中使用 ScrollView 或者它可以显示你想要做什么?

标签: android xml android-layout layout android-tablelayout


【解决方案1】:

对您的 xml 代码进行这些更改..我希望它会起作用

 <RelativeLayout 
    android:id="@+id/Relative_4"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" //This is new line
    >

    <TableLayout 
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:layout_centerInParent="true"//This is new line      
        android:clickable="false"
        android:focusable="false"
        android:layoutDirection="rtl"
        android:focusableInTouchMode="false"
        android:longClickable="false"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

【讨论】:

    【解决方案2】:

    尝试在表格布局中添加这一行:

     android:layout_centerInParent="true"
    

    【讨论】:

      【解决方案3】:
      if you want whole table layout inside relative layout to center then do this :
      
      <RelativeLayout 
      android:id="@+id/Relative_4"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:gravity="center">
      
      and if you want the content inside tablerow to center then you just add this line to your table row:
      android:gravity="center"
      

      【讨论】:

        【解决方案4】:
         <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" >
        

        【讨论】:

          猜你喜欢
          • 2012-12-17
          • 2021-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多