2015-07-23 4 views
-1

У меня есть ListView, который - когда я добавляю элементы в макет, когда элементы достигают дна - перекрывает некоторую Button I, расположенную внизу представления.
Посмотреть этот скриншотПредотвращение перекрытия элементов Listview

screenshot

Я хочу, чтобы добавить элементы в моем ListView, используя все доступное пространство над кнопками, как это последние Просмотров (предотвращающие показать элементы, пользователь не будет видеть) ,

установка ListView:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/parentPanel" 
    android:layout_gravity="start"> 

    <ListView 
     android:id="@+id/log_drawer" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@color/log_drawer_color" 
     android:divider="@android:color/transparent" 
     android:cacheColorHint="@android:color/transparent" 
     android:dividerHeight="0.0dip" 
     android:typeface="monospace" 
     android:scrollingCache="false" 
     /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/grey19" 
     android:layout_alignParentBottom="true"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_delete" 
      android:clickable="true" 
      android:background="@drawable/textview_state_config" 
      android:text="@string/clear_log" 
      android:onClick="onClick" 
      android:id="@+id/clear_log" 
      android:paddingTop="5dp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="41dp" 
      android:layout_marginStart="41dp" /> 


     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_share" 
      android:clickable="true" 
      android:id="@+id/share_log" 
      android:text="@string/share_log" 
      android:onClick="onClick" 
      android:paddingTop="5dp" 
      android:layout_alignParentTop="true" 
      android:background="@drawable/textview_state_config" 
      android:layout_toRightOf="@+id/clear_log" 
      android:layout_toEndOf="@+id/clear_log" 
      android:layout_marginLeft="73dp" 
      android:layout_marginStart="73dp" /> 

    </RelativeLayout> 
</RelativeLayout> 

Более подробная информация может быть предоставлена, если это необходимо. Благодарю.

+0

использование андроид: layout_above = «Уры второго относительной раскладки идентификатор» для ур listview –

+0

Почему вы положили 2 кнопки ** внутри другого RelativeLayout ** ?! Пожалуйста, ** избегайте макетирования макета ** !! –

+0

Я не планировал гнездо. Требуется установить эти кнопки в нижней части списка. – CodeZero

ответ

0

Для тех, кто имея такие вопросы, как это в ближайшем будущем, это как я решил мои я добавил к моему ListView

android:layout_above="@+id/layout_id " 
android:scrollbars="true" 
1

Вы можете добавить следующее свойство к вашему ListView:

android:scrollbars="vertical" 

который сделает прокручивать и не будет перекрывать другие элементы.

Или, вы можете сделать это программно:

listView.setVerticalScrollBarEnabled(true); 
+0

Элементы, добавленные в список, все еще накладываются на кнопки – CodeZero

0

Я думаю, вы должны использовать LinearLayout для вашего вопроса.

Рассмотрим следующий код

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

    <ListView 
    android:id="@+id/log_drawer" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="0.8" 
    android:background="@color/log_drawer_color" 
    android:divider="@android:color/transparent" 
    android:cacheColorHint="@android:color/transparent" 
    android:dividerHeight="0.0dip" 
    android:typeface="monospace" 
    android:scrollingCache="false" 
    /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.2" > 

     <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableTop="@drawable/ic_delete" 
     android:clickable="true" 
     android:background="@drawable/textview_state_config" 
     android:text="@string/clear_log" 
     android:onClick="onClick" 
     android:id="@+id/clear_log" 
     android:paddingTop="5dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="41dp" 
     android:layout_marginStart="41dp" /> 


    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableTop="@drawable/ic_share" 
     android:clickable="true" 
     android:id="@+id/share_log" 
     android:text="@string/share_log" 
     android:onClick="onClick" 
     android:paddingTop="5dp" 
     android:layout_alignParentTop="true" 
     android:background="@drawable/textview_state_config" 
     android:layout_toRightOf="@+id/clear_log" 
     android:layout_toEndOf="@+id/clear_log" 
     android:layout_marginLeft="73dp" 
     android:layout_marginStart="73dp" /> 

    </RelativeLayout> 

</LinearLayout> 
0

Простой дизайн, с использованием одного RelativeLayout.
ListView останется над кнопки.

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/parentPanel" 
    android:layout_gravity="start" 
    > 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableTop="@drawable/ic_delete" 
     android:clickable="true" 
     android:background="@drawable/textview_state_config" 
     android:text="@string/clear_log" 
     android:onClick="onClick" 
     android:id="@+id/clear_log" 
     android:paddingTop="5dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="41dp" 
     android:layout_marginStart="41dp" 
    /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableTop="@drawable/ic_share" 
     android:clickable="true" 
     android:id="@+id/share_log" 
     android:text="@string/share_log" 
     android:onClick="onClick" 
     android:paddingTop="5dp" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/textview_state_config" 
     android:layout_toRightOf="@+id/clear_log" 
     android:layout_toEndOf="@+id/clear_log" 
     android:layout_marginLeft="73dp" 
     android:layout_marginStart="73dp" 
    /> 
    <ListView 
     android:id="@+id/log_drawer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:layout_above="@id/clear_log" 
     android:background="@color/log_drawer_color" 
     android:divider="@android:color/transparent" 
     android:cacheColorHint="@android:color/transparent" 
     android:dividerHeight="0.0dip" 
     android:typeface="monospace" 
     android:scrollingCache="false" 
    /> 
</RelativeLayout> 
+0

. Это приведет к тому, что кнопки заполнят весь макет, не показывая список. Так что это не сработает. – CodeZero

+0

Очевидно, ** это ложь **. Поскольку они установлены в 'wrap_content', что заставляет их занимать ** только пространство, необходимое для их содержимого **. Поэтому эта схема ** работает **. У меня есть определенный опыт в дизайне пользовательского интерфейса, вы можете мне доверять. –

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