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

<TableRow
    android:id="@+id/homeFirstRow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dip" >

    <LinearLayout
        android:id="@+id/navigationLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginLeft="10dp"
        android:background="#669cb7"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btnCall"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_call_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnPicture"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_take_pictures_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnNavigate"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_navigate_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnedo"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_pod_text"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/distanceLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:background="#FFC58F"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tv"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="SOURCE TO DESTINATION COMES HERE" />

        <TextView
            android:id="@+id/txtFrom"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/txtTo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/txtETA"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/txtDistance"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/expandingLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginLeft="10dp"
        android:background="#FFC58F"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btnLanguage"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_language_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnImages"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_image_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnMessages"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_job_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnAlerts"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_alert_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnlogout"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="@string/btn_logout_text"
            android:textSize="15sp" />
    </LinearLayout>
</TableRow>

嗨,上面是我的主屏幕实现,我想左对齐第一个线性布局,居中对齐第二个布局,右对齐最后一个布局。有人知道怎么做吗?

4

3 回答 3

2

默认情况下,如果 TableRow 内的所有子元素都可以在屏幕边界内绘制,那么 TableView 将为每个 LinearLayout 子元素分配相等的区域,它们将自动左对齐、居中和右对齐。

在您的情况下,每个 LinearLayouts 都有 4 个或更多视图,其中包含一些难以适应屏幕边界的文本。因此,TableLayout 只会从第一个孩子开始绘制适合屏幕的任何内容。

  1. 您可以尝试使用带有 weightSum=3 的 LinearLayout 而不是 TableRow,并为每个子 LinearLayout 赋予 1 的权重。
  2. 此外,检查您的按钮是否具有默认的 MinWidth,如果您确信所有文本都可以显示在屏幕上且视图不会溢出屏幕,则将其删除
  3. 使用重力(左、中、右)来控制内部布局相对于父级的位置。请注意,layout_gravity 仅在父级是 LinearLayout 时才有效。
  4. 您也可以使用RelativeLayout,但如果您尝试将它们分别精确定位在左侧、中心和右侧,则内部LinearLayouts 可能会重叠。

    <LinearLayout android:orientation=horizontal
                  android:weightSum=3 >
        <LinearLayout android:layout_width=0dp 
                      android:layout_weight=1
                      android:layout_gravity=left >
        <LinearLayout android:layout_width=0dp 
                      android:layout_weight=1
                      android:layout_gravity=center >
        <LinearLayout android:layout_width=0dp 
                      android:layout_weight=1
                      android:layout_gravity=right >
    </LinearLayout>
    
于 2013-03-07T04:23:34.163 回答
0

尝试使用 weightsum 和方向来实现你想要的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/homeTableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="10"
    android:orientation="horizontal"
     >

<LinearLayout
        android:id="@+id/navigationLayout"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_gravity="left"
        android:background="#669cb7"
        android:orientation="vertical"
        android:layout_weight="3.3"

        >

        <Button
            android:id="@+id/btnCall"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="btn_call_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnPicture"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="btn_take_pictures_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnNavigate"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="btn_navigate_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnedo"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="btn_pod_text"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/distanceLayout"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:background="#FFC58F"
        android:gravity="center"
        android:orientation="vertical"
        android:layout_weight="3.3" 
        >

        <TextView
            android:id="@+id/tv"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="SOURCE TO DESTINATION COMES HERE" />

        <TextView
            android:id="@+id/txtFrom"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="" />

        <TextView
            android:id="@+id/txtTo"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="" />

        <TextView
            android:id="@+id/txtETA"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="" />

        <TextView
            android:id="@+id/txtDistance"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/expandingLayout"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:background="#FFC58F"
        android:orientation="vertical"
        android:layout_weight="3.4" 
        >

        <Button
            android:id="@+id/btnLanguage"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="btn_language_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnImages"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="btn_image_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnMessages"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="btn_job_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnAlerts"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="btn_alert_text"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btnlogout"
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:text="btn_logout_text"
            android:textSize="15sp" />
    </LinearLayout>

</LinearLayout>

结果将是这样的:

在此处输入图像描述

于 2013-03-07T04:02:06.157 回答
0
  1. 您确定所有这些按钮都适合一个屏幕吗?
  2. 您可以使用 RelativeLayout 作为 3 个线性布局的包装器
  3. 或者您可以使用带有 weightSum 的 LinearLayout 包装器
<RelativeLayout>
<LinearLayout android:layout_alignParentLeft="true">
<LinearLayout android:layout_toRightOf="@id/linear1>
<LinearLayout android:layout_toRightOf="@id/linear2 android:layout_alignParentRight="true">
<RelativeLayout>
于 2013-03-07T04:03:35.040 回答