2015-06-07 86 views
1

我正在開發我的第一個應用程序在android中,我堅持我的xml佈局。在我的佈局中有4個textview,在textview下面有2個圖像按鈕。 Textview需要放置在一個之下,其大小不同,即第一個和第二個textview是1行,第三個textview可以是最多3-4行,第四個textview是兩行。 2個按鈕需要放置在第4個文本視圖下方,但彼此相鄰。下面是我的佈局文件: -RelativeLayout問題不適合所有屏幕尺寸

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF" 
android:weightSum="1"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:id="@+id/name" 
    android:text="LocAlert" 
    android:textStyle="italic" 
    android:layout_gravity="center_horizontal" 
    android:layout_weight="0.07" 
    android:textColor="@android:color/holo_blue_dark" 
    android:layout_marginTop="37dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/task_name" 
    android:textStyle="bold" 
    android:text="name" 
    android:textColor="@android:color/tab_indicator_text" 
    android:layout_gravity="center_horizontal" 
    android:layout_below="@+id/name" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="39dp" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textColor="@android:color/tab_indicator_text" 
    android:text="location" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/task_location" 
    android:gravity="center" 
    android:layout_marginTop="42dp" 
    android:layout_below="@+id/task_name" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:text="distance" 
    android:textColor="@android:color/tab_indicator_text" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/task_distance" 
    android:layout_marginBottom="56dp" 
    android:layout_above="@+id/imageButton" 

    android:layout_centerHorizontal="true"/> 

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageButton" 
    android:src="@drawable/speakblue" 
    android:background="#FFFFFF" 
    android:text="Speak Out" 
    android:layout_marginBottom="55dp" 
    android:layout_alignParentBottom="true" 
    android:layout_toStartOf="@+id/task_name" /> 

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageButton2" 
    android:background="#FFFFFF" 
    android:src="@drawable/okblue" 
    android:layout_below="@+id/task_distance" 
    android:layout_alignParentEnd="true" /> 

我面臨的問題是在第三和第四的TextView和imagebuttons。由於我的第三個textview的大小增加和減少根據行我的第四個textview和按鈕也混亂了..不適合一個其他以相同的格式正確..當我運行我的應用程序在一個具有大屏幕尺寸的設備我怎樣才能讓我的佈局,以適應所有的屏幕尺寸和適當空間的TextView的..請幫助差距很多..

編輯

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF" 
> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:id="@+id/name" 
    android:text="LocAlert" 
    android:textStyle="italic" 
    android:layout_gravity="center_horizontal" 
    android:layout_weight="1" 
    android:textColor="@android:color/holo_blue_dark" 
    android:layout_marginTop="37dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:id="@+id/task_name" 
    android:textStyle="bold" 
    android:text="name" 
    android:textColor="@android:color/tab_indicator_text" 
    android:layout_gravity="center_horizontal" 
    android:layout_below="@+id/name" 
    android:layout_centerHorizontal="true" 
    android:layout_weight="1" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textColor="@android:color/tab_indicator_text" 
    android:text="location" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/task_location" 
    android:gravity="center" 
    android:layout_weight="1" 
    android:layout_below="@+id/task_name" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:text="distance" 
    android:textColor="@android:color/tab_indicator_text" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/task_distance" 
    android:layout_below="@+id/task_location" 

    android:layout_weight="1" 
    android:layout_centerHorizontal="true"/> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/task_distance"> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton" 
     android:src="@drawable/speakblue" 
     android:background="#FFFFFF" 
     android:text="Speak Out" 
     android:layout_weight="1" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton2" 
     android:background="#FFFFFF" 
     android:src="@drawable/okblue" 

     android:layout_weight="1" 
     android:layout_gravity="right" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentEnd="true" /> 

</RelativeLayout> 

I ended up with this.. There's a space between the 2nd textview and 3rd textview which i don't want.. How can i solve this.. ?

enter image description here

回答

0

您對前三個文本視圖使用了margintop,然後切換到其餘元素的頁邊距底部,因此這會修復相對於父頂部和底部的元素。然後留下中間大多數元素來填補這個中間的空白。

  1. 我將使用layout_below提交在textviews和按鈕之間的位置連接到母體元件的差異,而不是top_margin/bottom

    http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#attr_android:layout_below

  2. 我會使用每個TextView的/按鈕加起來weightsum總加權求和..

What is android:weightSum in android, and how does it work?

+0

我都嘗試你的解決方案..有編輯我的帖子,通過添加更改的結果..我結束了上面的圖像,其中m有第二和第三textview之間的空間..我怎樣才能解決..我希望它也採取相同的空間.. – user2205230

+0

我發現如此lution爲上述問題..從第三個textview中去除了重力,這很好..但現在我所看到的是第三個textview將要在屏幕左側我想它作爲我的第一個圖像..我該怎麼做。 。? – user2205230

+0

也發現這..使用重力,但center_horizo​​ntal而不是中心.. Thanxx曼恩.. – user2205230