2013-03-07 49 views
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> 

左,右对齐放置在表行内的线性布局

嗨以上就是我实现了一个主屏幕,并且我要左对齐第一线性布局,中心对齐第二布局和右对齐最后摆出来。任何人都知道如何去做?

回答

0

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

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

结果会是这样的:

enter image description here

+0

这一个不工作 – Kalanamith 2013-03-07 04:29:24

+0

你希望所有的控制权垂直? – KDeogharkar 2013-03-07 04:30:41

0
  1. 你确定这一切的按钮将适合在一个屏幕?
  2. 可以使用的RelativeLayout作为包装3个linearlayouts
  3. 或用weightSum
<RelativeLayout> 
<LinearLayout android:layout_alignParentLeft="true"> 
<LinearLayout android:layout_toRightOf="@id/linear1> 
<LinearLayout android:layout_toRightOf="@id/linear2 android:layout_alignParentRight="true"> 
<RelativeLayout> 
1

默认情况下,你可以通过用户的LinearLayout包装,如果所有的TableRow里面的孩子可以出票屏幕边界,那么TableView将为每个LinearLayout子元素分配相同的区域,并且它们将自动左对齐,居中和右对齐。

在你的情况下,每个LinearLayouts有4个或更多的视图,有些文本很难在屏幕边界内适合。因此,TableLayout将只绘制从第一个孩子开始的任何适合屏幕的内容。

  1. 您可以尝试使用的LinearLayout与weightSum = 3代替的TableRow,并给每个孩子的LinearLayout重量的1
  2. 此外,检查如果你的按钮有一个默认的MinWidth和删除如果您确信所有文字都可以在屏幕上显示而不会出现溢出屏幕
  3. 使用重力(左,中,右)来控制内部布局相对于父级的位置。请注意,仅当父级是LinearLayout时,layout_gravity才有效。
  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>