Android新手:需要水平排列按钮

时间:2013-08-02 16:29:32

标签: android

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

<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>

7 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您尚未为TableRow确定TableLayout。想象一下如何创建表,行是水平行,列是垂直行。

修复代码看起来像这样

<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

答案 2 :(得分:0)

使用linearlayout,如下所示:

<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

答案 3 :(得分:0)

或将Button个对象封装在TableRow标记内,例如

<TableRow>
    <Button></Button>
</TableRow>

答案 4 :(得分: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>

答案 5 :(得分: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>

答案 6 :(得分: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>