RelativeLayout上的三个孩子无法显示

时间:2014-08-18 08:03:35

标签: android android-layout android-linearlayout relativelayout

我试图在相对布局上显示四个直接子项,其中第一个是EdiText(处于'消失'可见性),第二个是带有TextView和ImageView的LinearLayout,第三个是ListView,第四个是另一个LinearLayout。 / p>

ListView克服了所有孩子。我发布在代码下面。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollview"
android:background="@drawable/bg"
android:layout_width="match_parent"
android:layout_height="match_parent" 
tools:context="com.antoinecampbell.gcmdemo.GcmActivity$PlaceholderFragment">
<EditText
            android:id="@+id/recepient"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:hint="Number"
            android:imeOptions="actionSend"
            android:inputType="phone"
            android:visibility="invisible">
            <requestFocus />
</EditText>
<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_below="@+id/recepient" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/padding_small"
        android:text="Preview"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:visibility="gone"/>

      <ImageView android:id="@+id/imageShow"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/abs__ic_go"
        android:layout_gravity="center_horizontal"
        android:visibility="gone"/>        




</LinearLayout>
  <ListView android:id="@+id/listMessages"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_below="@+id/LinearLayout1"
          android:cacheColorHint="#00000000"
          android:divider="#00000000"
          android:listSelector="#00000000"               
        />
  <LinearLayout
        android:id="@+id/bottomview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical" 
        android:layout_below="@+id/listMessages"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        android:background="#FFFFFF">

        <com.rockerhieu.emojicon.EmojiconEditText
            android:id="@+id/name_edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/padding_small"
            android:layout_weight="1"
            android:hint="@string/enter_message_text"
            android:imeOptions="actionSend"
            android:inputType="text" 
            android:layout_gravity="center_vertical"
            android:visibility="visible"/>


        <LinearLayout android:layout_width="wrap_content"
                      android:id="@+id/frameView"
                      android:layout_height="wrap_content"
                      android:orientation="horizontal"
                      android:visibility="gone">
        <fragment
        android:id="@+id/emojicons"            
        android:layout_width="match_parent"
        android:layout_height="220dp"
        class="com.rockerhieu.emojicon.EmojiconsFragment"/>
        </LinearLayout>


        <ImageButton
            android:id="@+id/send_message_button"
            android:background="@drawable/angry"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"             
            android:onClick="onClick"
            android:visibility="visible"/>
    </LinearLayout>

    </RelativeLayout>

现在我尝试在其中使用带有scrollview的LinearLayout,它现在不滚动listview

 <?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" >

<ScrollView 
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

         <EditText
            android:id="@+id/recepient"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:hint="Number"
            android:imeOptions="actionSend"
            android:inputType="phone"
            android:visibility="invisible">
            <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/padding_small"
        android:text="Preview"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:visibility="gone"/>

      <ImageView android:id="@+id/imageShow"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/abs__ic_go"
        android:layout_gravity="center_horizontal"
        android:visibility="gone"/> 

       <ListView android:id="@+id/listMessages"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_below="@+id/LinearLayout1"
          android:cacheColorHint="#00000000"
          android:divider="#00000000"
          android:listSelector="#00000000"               
        />


    </LinearLayout>
    </ScrollView>

   <LinearLayout
        android:id="@+id/bottomview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical" 
        android:layout_below="@+id/listMessages"
        android:layout_alignParentBottom="true"
        android:visibility="visible"
        android:background="#FFFFFF">

        <com.rockerhieu.emojicon.EmojiconEditText
            android:id="@+id/name_edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/padding_small"
            android:layout_weight="1"
            android:hint="@string/enter_message_text"
            android:imeOptions="actionSend"
            android:inputType="text" 
            android:layout_gravity="center_vertical"
            android:visibility="visible"/>


        <LinearLayout android:layout_width="wrap_content"
                      android:id="@+id/frameView"
                      android:layout_height="wrap_content"
                      android:orientation="horizontal"
                      android:visibility="gone">
        <fragment
        android:id="@+id/emojicons"            
        android:layout_width="match_parent"
        android:layout_height="220dp"
        class="com.rockerhieu.emojicon.EmojiconsFragment"/>
        </LinearLayout>


        <ImageButton
            android:id="@+id/send_message_button"
            android:background="@drawable/angry"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"             
            android:onClick="onClick"
            android:visibility="visible"/>
    </LinearLayout>

   </LinearLayout>

2 个答案:

答案 0 :(得分:2)

ListView将覆盖其他元素,因为您没有给它任何相对位置。在相对布局中,每个元素都将默认显示在(0,0)(即视图的左上角),除非它给出layout_belowlayout_alignBottom等参数来确定在哪里画的。

因此,在这种情况下,您可能希望ListView拥有android:layout_below="@id/LinearLayout1bottomview同样拥有android:layout_below="@id/listMessages

答案 1 :(得分:0)

根据您的要求,这是xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center" >

    <EditText
        android:id="@+id/edNumber"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:hint="Number"
        android:inputType="phone"
        android:visibility="gone" />

    <LinearLayout
        android:id="@+id/llLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/edNumber"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="linear layout text" />

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_launcher" />
    </LinearLayout>

    <ListView
        android:id="@+id/lvList"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/llBottom"
        android:layout_below="@id/llLayout" >
    </ListView>

    <LinearLayout
        android:id="@+id/llBottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#ababab"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="10dp"
            android:text="Bottom Bar text" />
    </LinearLayout>

</RelativeLayout>