2012-01-12 73 views
2

剛接觸android我仍然在學習佈局的錯綜複雜。我正試圖在地圖上創建一個簡單的欄。在大多數情況下,這工作得很好。Android LinearLayout對齊

我的問題是,我希望一切都是正確的對齊,除了我想左對齊的按鈕。我嘗試了很多組合,無法獲得所需的佈局。

這開始讓我相信我的整個結構是不正確的。這似乎應該有一個簡單的修復。我在想什麼?

<LinearLayout 
     android:id="@+id/transparent_panel_hud" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:gravity="right"> 
     <Button 
      android:text="View" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableRight="@drawable/arrow_down" 
      android:textSize="10sp" 
      android:drawablePadding="3dp"/> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:paddingRight="15dp" > 

      <TextView 
       android:id="@+id/latitude" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:gravity="right" 
       android:text="@string/default_latitude" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/longitude" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="right" 
       android:text="@string/default_longitude" 
       android:textSize="18sp" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:paddingRight="10dp" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/speed" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/speed" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/default_speed" 
       android:textSize="18sp" /> 
     </LinearLayout> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:paddingRight="10dp" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/heading" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/heading" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/default_heading" 
       android:textSize="18sp" /> 
     </LinearLayout> 
    </LinearLayout>![screenie][1] 

回答

6

執行以下更改XML的佈局,你會得到輸出你提到。嘗試這個。

LinearLayoutid=transparent_panel_hud

刪除線android:gravity="right"讓您在LinearLayoutButton如下。

 <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:gravity="left" > 
      <Button ... as you like /> 
     </LinearLayout> 

保持你的remaing在LinearLayout如下3個垂直LinearLayouts

 <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:gravity="right" > 
      <LinearLayout vertical 1 ... as you like /> 
      <LinearLayout vertical 2 ... as you like /> 
      <LinearLayout vertical 3 ... as you like /> 
     </LinearLayout> 

我上面測試了對你的代碼的改變,它的工作。你也檢查它並讓我知道結果。

+0

@J。 Scarbrough你有答案嗎?如果不是,請檢查此答案。 – 2012-01-12 05:59:51

+0

這工作完美。謝謝。 – 2012-01-12 21:01:49

1

試試這個

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/transparent_panel_hud" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <Button 
     android:text="View" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10sp" 
     android:layout_alignParentLeft="true" 
     android:drawablePadding="3dp"/> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:id="@+id/rightlayout" 
     android:layout_alignParentRight="true" 
     android:paddingRight="10dp" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="heading" 
      android:textSize="18sp" /> 

     <TextView 
      android:id="@+id/heading" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="default_heading" 
      android:textSize="18sp" /> 
    </LinearLayout> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_toLeftOf="@id/rightlayout" 
     android:orientation="vertical" 
     android:paddingRight="10dp" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="speed" 
      android:textSize="18sp" /> 

     <TextView 
      android:id="@+id/speed" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="default_speed" 
      android:textSize="18sp" /> 
    </LinearLayout> 
</RelativeLayout> 
+0

@blessenmless - 現在我已經看到你有什麼這是完全合理的。感謝您的幫助! – 2012-01-12 20:35:57