2015-06-07 52 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