【问题标题】:How to merge Linear Layout and Table Layout at android?如何在android中合并线性布局和表格布局?
【发布时间】:2014-02-27 22:37:49
【问题描述】:

我是新的机器人。在为 Android 设计布局时,我有一点点堆栈。在我的场景中,我有两个带有线性布局的按钮。这是我的 xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/linearLayout2"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="horizontal"
          android:background="@color/isp_home_color"
    >

<Button
        android:layout_width="0dp"
        android:layout_height="70dp"
        android:layout_weight="1"
        android:text="@string/sync_text"
        android:background="@color/sync_text_color"
        android:id="@+id/btn_syncpin"
        android:layout_gravity="left"
        android:textStyle="bold"
        />

<Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="70dp"
        android:text="@string/topup_text"
        android:background="@color/topup_text_color"
        android:id="@+id/btn_topup"
        android:layout_gravity="right"
        android:textStyle="bold"/>

  <!--Table Layout will come here -->

 </LinearLayout>

这里的图片。

当我在线性布局中添加新的 TableLayout 时。我懂了。

这是我的 xml 用于表格布局。

   <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >



   </TableLayout>

其实,我不想这样。我想要两个按钮,如第一张图片所示。然后,下一个表格布局将出现在这两个按钮下。请帮助我如何进行这种布局。请指点我如何做到这一点。感谢先进。

【问题讨论】:

  • 把它全部打包成一个相对布局?因为 LinearLayout 将事物一个接一个地放置,这就是这种行为的原因。罪魁祸首是android:orientation="horizontal",所以在添加两个按钮后,表格布局会在水平方向的这两个按钮之后。

标签: android android-layout layout


【解决方案1】:

将方向设置为垂直于 LinearLayout 而不是 TableLayout。将两个按钮放置在具有水平方向的 LinearLayout 中,并为父 LinearLayout 提供“垂直”方向

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#456789"
    android:orientation="vertical" >
 <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF" 
          android:orientation="horizontal">
    <Button
        android:id="@+id/btn_syncpin"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_gravity="left"
        android:layout_weight="1"
        android:background="#123456"
        android:text="tring/"
        android:textStyle="bold" />

    <Button
        android:id="@+id/btn_topup"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_gravity="right"
        android:layout_weight="1"
        android:background="#978969"
        android:text="topup_text"
        android:textStyle="bold" />
    </LinearLayout>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF" >
    </TableLayout>

</LinearLayout>

【讨论】:

  • !当我添加这个时,前两个按钮没有出现。
【解决方案2】:

检查一下,我刚刚在我的机器上检查了它,它可以正常工作,尽管背景首选项和显示字符串已被删除。

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

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn_syncpin"
            android:layout_width="0dp"
            android:layout_height="70dp"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:textStyle="bold" />

        <Button
            android:id="@+id/btn_topup"
            android:layout_width="0dp"
            android:layout_height="70dp"
            android:layout_gravity="right"
            android:layout_weight="1"
            android:textStyle="bold" />
    </LinearLayout>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_below="@+id/linearLayout2">
    </TableLayout>

</RelativeLayout>

【讨论】:

    【解决方案3】:

    将相对布局作为父布局。

    以下是一个例子。它也会显示您的按钮和表格布局

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/linearLayout1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
    
            <LinearLayout
                android:id="@+id/linearLayout2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@color/isp_home_color"
                android:orientation="horizontal" >
    
                <Button
                    android:id="@+id/btn_syncpin"
                    android:layout_width="0dp"
                    android:layout_height="70dp"
                    android:layout_gravity="left"
                    android:layout_weight="1"
                    android:background="@color/sync_text_color"
                    android:text="@string/sync_text"
                    android:textStyle="bold" />
    
                <Button
                    android:id="@+id/btn_topup"
                    android:layout_width="0dp"
                    android:layout_height="70dp"
                    android:layout_gravity="right"
                    android:layout_weight="1"
                    android:background="@color/topup_text_color"
                    android:text="@string/topup_text"
                    android:textStyle="bold" />
    
    
            </LinearLayout>
    
            <TableLayout
                android:id="@+id/table"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_below="@+id/linearLayout2" >
            </TableLayout>
    
        </RelativeLayout>
    

    谢谢

    【讨论】:

      【解决方案4】:

      这个答案只告诉所有 android 版本的 button_bar_layout 的实现,按钮位于活动的底部/顶部,看起来像带有 OK/Cancel 按钮的 AlertDialog。

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:divider="?android:attr/listDivider"
          android:orientation="vertical"
          android:showDividers="middle" >
      
          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:background="@null"
              android:divider="?android:attr/listDivider"
              android:dividerPadding="12dp"
              android:orientation="horizontal"
              android:showDividers="middle" >
      
              <Button
                  android:layout_width="0dp"
                  android:layout_height="match_parent"
                  android:layout_weight="1"
                  android:background="@android:drawable/list_selector_background"
                  android:paddingLeft="4dp"
                  android:paddingRight="4dp"
                  android:text="One" />
      
              <Button
                  android:layout_width="0dp"
                  android:layout_height="match_parent"
                  android:layout_weight="1"
                  android:background="@android:drawable/list_selector_background"
                  android:paddingLeft="4dp"
                  android:paddingRight="4dp"
                  android:text="Two" />
          </LinearLayout>
      
          <TableLayout
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:background="#FFFFFF" >
          </TableLayout>
      
      </LinearLayout>
      

      致谢:还有谁? Johnkil

      【讨论】:

      • 不回答 OP 最初提出的问题。他希望顶部有两个按钮,下方有一个表格布局。
      【解决方案5】:
      // try this way here i gave you alternative to achieve your requirement from give all of above
      1. header.xml
      <?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:orientation="horizontal"
          android:background="@color/isp_home_color">
      
          <Button
              android:layout_width="0dp"
              android:layout_height="70dp"
              android:layout_weight="1"
              android:text="@string/sync_text"
              android:background="@color/sync_text_color"
              android:id="@+id/btn_syncpin"
              android:textStyle="bold"/>
      
          <Button
              android:layout_width="0dp"
              android:layout_weight="1"
              android:layout_height="70dp"
              android:text="@string/topup_text"
              android:background="@color/topup_text_color"
              android:id="@+id/btn_topup"
              android:textStyle="bold"/>
      
      </LinearLayout>
      2.main.xml
      <?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="match_parent"
          android:padding="5dp"
          android:orientation="vertical">
      
          <include
              layout="@layout/header"/>
          <TableLayout
              android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_marginTop="10dp"
              android:layout_weight="1">
      
          </TableLayout>
      
      </LinearLayout>
      

      【讨论】:

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