2015-10-07 60 views
1

我無法在框架佈局中找到正確的位置,我不知道它爲什麼如此。 我需要將exit_layout(代碼片段末尾的LinearLayout)粘貼到屏幕的左上角。在Android佈局錯誤的定位

的XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:id="@+id/exit_layout" 
     android:gravity="top|left"> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/exit_button_mode" 
      android:layout_marginTop="5dp" 
      android:layout_marginRight="5dp" 
      android:background="@drawable/ic_exit_icon"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/tv_beck_to_main" 
      android:textStyle="bold" 
      android:layout_marginLeft="6dp"/> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:id="@+id/modes" 
     android:gravity="center_vertical|center_horizontal" 
     > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/tv_choose_mode" 
      android:textSize="30sp" 
      android:layout_marginLeft="10dp"/> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      > 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       > 
       <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/button_beginner_mode" 
        android:background="@drawable/beginner_button"/> 
       <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/button_advanced_mode" 
        android:background="@drawable/advanced_button"/> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tv_mode_beginner" 
        android:textStyle="bold" 
        android:layout_marginLeft="17dp"/> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tv_mode_advanced" 
        android:textStyle="bold" 
        android:layout_marginLeft="31dp"/> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 
       <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/button_expert_mode" 
        android:background="@drawable/expert_button"/> 
       <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/button_custom_mode" 
        android:background="@drawable/custom_button"/> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tv_mode_expert" 
        android:textStyle="bold" 
        android:layout_marginLeft="24dp"/> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/tv_mode_custom" 
        android:textStyle="bold" 
        android:layout_marginLeft="48dp"/> 
      </LinearLayout> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

截圖畫面:

enter image description here

+0

發佈您的完整佈局文件。我認爲從最後缺少的東西 –

+1

爲什麼你不使用linearlayout作爲父佈局 –

回答

2

變化的高度和寬度的第一線佈局,以匹配父:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:id="@+id/modes"> 

您可能需要調整此佈局中其他視圖的邊距以放置他們在所需的位置。

此外,框架佈局在這裏似乎不是必要的,您可以通過使用線性佈局來獲得所需的結果。


更新

由於佈局的問題是改變了修改這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/exit_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="top|left" 
     android:orientation="vertical"> 

     <ImageButton 
      android:id="@+id/exit_button_mode" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:layout_marginTop="5dp" 
      android:background="@drawable/Capture" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="6dp" 
      android:text="Main Menu" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/modes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginTop="20dp" 
     android:gravity="center" 
     android:orientation="vertical"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Choose Game Mode" 
      android:textSize="30sp" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="#aaaaaa" 
      android:gravity="center" 
      android:orientation="vertical"> 

      <!--remove bg color from linear layout--> 
      <!--add your buttons in place of textview--> 
      <TextView 
       android:layout_width="300dp" 
       android:layout_height="300dp" 
       android:gravity="center" 
       android:text="Add your remaining layout here" 
       android:textSize="30sp" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

結果:

enter image description here

+0

但我怎麼能放置東西在沒有具體的邊界佈局? –

+0

@VladZbuker哪邊? –

+0

@RahulTiwiari任何保證金。因爲在屏幕上的定位會在不同的屏幕上發生變化,那就不好了。 –

0

確保圖像不會有一個巨大的空間頂部。 也可以嘗試加入這一行到您的ImageButton:

android:adjustViewBounds="true" 

如果仍然失敗嘗試使用,而不是一個ImageButton的一個ImageView的:

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/exit_button_mode" 
     android:layout_marginTop="5dp" 
     android:layout_marginRight="5dp" 
     android:adjustViewBounds="true" 
     android:src="@drawable/ic_exit_icon"/> 
0

您XML工作絕對沒問題,因爲它在頂部顯示您exit_layout屏幕左上角。我認爲問題在於你的資產。尋找它們或任何可能導致您的XML顯示此類視圖的邊距