2014-04-26 131 views
1

我有這樣的XML:嵌套佈局奇怪的問題

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.gelasoft.answeringball.MainActivity$PlaceholderFragment" > 

    <ImageView 
     android:id="@+id/sphereIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:src="@drawable/rsz_rsz_mystic" 
     android:contentDescription="@string/magicBallDescr"/>   

    <LinearLayout 
    android:id="@+id/table" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 


<EditText 
    android:id="@+id/launch_codes" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:hint="@string/textHint" 
    android:inputType="text" 
    /> 

    </LinearLayout> 


</RelativeLayout> 

正如你可以看到我已經包括了LinearLayoutRelativeLayout裏面,但我看到的是遠離我;想要做。

現在我的看法是這樣的:

enter image description here

我3個問題:

  1. 爲什麼LinearLayout是球體上面的圖標顯示?它被宣佈爲RelativeLayout的兒童

  2. 如何將球體放置在線性佈局視圖上方?

  3. 我該如何居中球體圖標?我曾嘗試

    機器人:layout_centerVertical = 「真」 機器人:layout_alignParentLeft = 「真」

但它放在視圖中心的圖標。我希望它集中在頂部。

我知道我在這裏錯過了一小部分,但作爲一個XML初學者,我無法發現我的錯誤。

回答

2

您可以使用此與您的字符串值和IMG國土資源

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.gelasoft.answeringball.MainActivity$PlaceholderFragment" > 

    <ImageView 
     android:id="@+id/sphereIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:contentDescription="magicBallDescr" 
     android:src="@drawable/ic_launcher" /> 

    <LinearLayout 
     android:id="@+id/table" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/sphereIcon" 
     android:orientation="horizontal" > 

     <EditText 
      android:id="@+id/launch_codes" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:hint="textHint" 
      android:inputType="text" /> 
    </LinearLayout> 

</RelativeLayout> 
1

1.去除您ImageView`

android:layout_centerVertical="true" 
android:layout_alignParentLeft="true" 

現在你全碼這兩個線路

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.gelasoft.answeringball.MainActivity$PlaceholderFragment" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/sphereIcon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription=" magicBallDescr" 
      android:src="@drawable/ic_launcher" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/table" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/linearLayout1" 
     android:layout_alignLeft="@+id/linearLayout1" 
     android:layout_marginBottom="139dp" 
     android:orientation="horizontal" > 

     <EditText 
      android:id="@+id/launch_codes" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:hint="textHint" 
      android:inputType="text" /> 
    </LinearLayout> 

</RelativeLayout> 
1

ImageView

使用android:layout_alignParentTop="true"對齊父頂部

使用android:layout_width="match_parent"填補父寬度

<ImageView 
    android:id="@+id/sphereIcon" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:src="@drawable/ic_logo" 
    android:contentDescription="@string/title_activity_settings"/> 

LinearLayout

使用android:layout_below="@+id/sphereIcon"使ImageView

下這一觀點