0

我需要水平排列按钮,但是,我的按钮是垂直显示的。它们都堆叠在一起......你知道我怎么能水平地做到这一点吗?

<TableLayout
    android:id="@+id/tableRow1"
    android:layout_width="match_parent"
    android:layout_height="88dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal" >


       <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

</TableLayout>
4

7 回答 7

1

使用线性布局,您可以轻松地水平表示您的按钮。

<LinearLayout
    android:id="@+id/tableRow1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:orientation="horizontal" >


       <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

</LinearLayout>
于 2013-08-02T16:33:16.600 回答
0

有很多方法可以做到这一点。请检查以下是其中一种方法

<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:weightSum="4" >

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

</LinearLayout>
于 2013-08-02T16:39:11.697 回答
0

将 TableRow 添加到 TableLayout,这是工作代码

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="88dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal" >


    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal" >

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />

        <Button android:layout_weight="1" />
    </TableRow>

</TableLayout>
于 2013-08-02T16:48:08.770 回答
0

您还没有为您的TableLayout确定一个TableRow。想象一下如何创建一个表,行是水平的,列是垂直的。

修复你的代码看起来像这样

<TableLayout
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="88dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" >

    <TableRow     
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <Button android:layout_weight="1" />
        <Button android:layout_weight="1" />
        <Button android:layout_weight="1" />
        <Button android:layout_weight="1" />
    </TableRow>
</TableLayout>

或者,为了让事情变得更容易,我建议使用将方向设置为水平的LinearLayout 。

于 2013-08-02T16:34:09.617 回答
0

使用如下线性布局:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#646464"
    android:gravity="center|center_vertical"
    android:paddingBottom="5dp"
    android:paddingTop="5dp" >

    <Button
        android:id="@+id/inner_artist_profile"
        android:layout_width="60dp"
    android:layout_height="25dp"
        android:text="Profile"
        android:textColor="#AEAEAE"
        android:background="@drawable/sub_nav_left" />

   <Button
       android:id="@+id/inner_artist_news"
       android:layout_width="60dp"
    android:layout_height="25dp"
       android:text="News"
       android:textColor="#AEAEAE"
       android:layout_alignParentTop="true"
       android:layout_toRightOf="@+id/inner_artist_profile"
       android:background="@drawable/sub_nav_middle" />

<Button
    android:id="@+id/inner_artist_events"
 android:layout_width="60dp"
    android:layout_height="25dp"
    android:text="Events"
    android:textColor="#AEAEAE"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/inner_artist_news"
    android:background="@drawable/sub_nav_middle" />

<Button
    android:id="@+id/inner_artist_videos"
   android:layout_width="60dp"
    android:layout_height="25dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/inner_artist_events"
    android:background="@drawable/sub_nav_middle"
    android:text="Videos"
    android:textColor="#AEAEAE" />
<Button
    android:id="@+id/inner_artist_albums"
   android:layout_width="60dp"
    android:layout_height="25dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/inner_artist_videos"
    android:background="@drawable/sub_nav_right"
    android:text="Albums"
    android:textColor="#AEAEAE" />
</RelativeLayout>

这是来自一个工作项目根据需要修改 id

于 2013-08-02T16:34:25.600 回答
0

或者将Button对象封装在TableRow标签中,例如

<TableRow>
    <Button></Button>
</TableRow>
于 2013-08-02T16:35:13.123 回答
0

我认为您应该使用带有 WeightSum 的 LinearLayout 而不是 TableLayout。要平均分配 4 个按钮的宽度,请将它们的宽度设置为 0,将它们的权重设置为 1。然后将 LinearLayout 的权重和设置为 4(按钮的数量)。像这样:

<LinearLayout
    android:id="@+id/tableRow1"
    android:layout_width="match_parent"
    android:layout_height="88dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal" 
    android:weightSum="4">

    <Button 
       android:layout_width="0dip"
       android:layout_height="fill_parent" 
       android:layout_weight="1" />

    <Button 
       android:layout_width="0dip"
       android:layout_height="fill_parent" 
       android:layout_weight="1" />

    <Button 
       android:layout_width="0dip"
       android:layout_height="fill_parent" 
       android:layout_weight="1" />

    <Button 
       android:layout_width="0dip"
       android:layout_height="fill_parent" 
       android:layout_weight="1" />

</LinearLayout>
于 2013-08-02T16:37:00.443 回答