2014-09-26 7 views
1

Я пытаюсь решить эту проблему, но я не нашел ничего, что мне помогло.ListView скрывает мой фрагмент

У меня есть этот макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="8dp"> 

    <LinearLayout 
     android:id="@+id/list_lv" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/profile_layout" 
     android:layout_marginTop="8dp" 
     android:background="@drawable/border" 
     android:orientation="vertical" 
     android:padding="8dp" 
     android:weightSum="1"> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

    <FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@id/list_lv" 
     android:layout_centerHorizontal="true" 
     android:background="@android:color/darker_gray" /> 

</RelativeLayout> 

В котором я хочу показать фрагмент ниже ListView. В коде это так (код для ListActivity:

getFragmentManager().beginTransaction().add(R.id.container, new BottomMenuFragment()).commit(); 
// Populate lisview and set adapter 

Но когда я запустить приложение, фрагмент не отображается, я думаю, что проблема с атрибутом android:layout_height="wrap_content" в ListViewlist_lv Но я не идея. ., как ее решить Вот скриншот с множеством данных в списке:

enter image description here

И с несколькими пунктами:

enter image description here

ответ

1

Поместите ListView над framelayout. Удалите android: layout_below = "@ id/list_lv" из FrameLayout и добавьте android: layout_above = "@ id/container" в LinearLayout. Ниже приведен фрагмент экодетекта:

<FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:background="@android:color/darker_gray" /> 

    <LinearLayout 
     android:id="@+id/list_lv" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/profile_layout" 
     android:layout_above="@id/container" 
     android:layout_marginTop="8dp" 
     android:background="@drawable/border" 
     android:orientation="vertical" 
     android:padding="8dp" 
     android:weightSum="1"> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 
+1

Спасибо, это то, что я искал. – elbaulp

+0

О, это не работает, если я добавляю больше элементов :-( – elbaulp

+0

Где вы добавляете больше элементов? –

1

Try с этим макетом XML в основном поможет вам:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="10" 
    android:orientation="vertical" 
    android:layout_margin="8dp"> 

    <LinearLayout 
     android:id="@+id/list_lv" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/profile_layout" 
     android:layout_marginTop="8dp" 
     android:background="@drawable/border" 
     android:orientation="vertical" 
     android:padding="8dp" 
     android:layout_weight="8"> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

    <FrameLayout 
     android:layout_weight="2" 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@id/list_lv" 
     android:layout_centerHorizontal="true" 
     android:background="@android:color/darker_gray" /> 

</LinearLayout> 
+0

Он отлично работает, но я хотел бы сохранить «RelativeLayout». Благодаря! – elbaulp

0

Попробуйте это. Уверен, что он решит вашу проблему:

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

<FrameLayout 
    android:id="@+id/list_lv" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_marginTop="8dp"   
    android:orientation="vertical" 
    android:padding="8dp" 
    android:layout_weight="0.5"> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</FrameLayout> 

<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="0.5" 
    android:background="@android:color/darker_gray" /> </LinearLayout> 

Голосовать, если все нормально работает!

Смежные вопросы