2015-03-20 5 views
0

Моя проблема в том, что у меня есть список, который отлично работает на absoulteLayout, но кнопки внизу не отображаются! Я поместил scrollview с absoluteLayout со всеми элементами (textview, button и т. Д.), А за пределами scrollview я поместил listview, это тоже не сработало, просто прокрутите кнопки, но список просто немного переместится, как можно Я положил scrollview, чтобы увидеть кнопки на кнопке и сделать listview работать? мой XML:прокрутить макет со списком android

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity"> 
<!-- The main content view --> 

    <AbsoluteLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/Ab"> 

     <ListView 
      android:layout_width="317dp" 
      android:layout_height="429dp" 
      android:id="@+id/listView" 
      android:layout_gravity="center" 
      android:layout_x="45dp" 
      android:layout_y="41dp" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="This Works Monica!!" 
      android:id="@+id/TV1" 
      android:layout_gravity="center_horizontal" 
      android:layout_x="120dp" 
      android:layout_y="22dp" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="35dp" 
      android:text="Play :D" 
      android:id="@+id/TESTME" 
      android:layout_gravity="center_horizontal|bottom" 
      android:layout_x="190dp" 
      android:layout_y="520dp" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="35dp" 
      android:text="Pause" 
      android:id="@+id/PAUSE" 
      android:layout_x="110dp" 
      android:layout_y="521dp" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="37dp" 
      android:text="Lista" 
      android:id="@+id/LISTA" 
      android:layout_x="274dp" 
      android:layout_y="520dp" /> 

     <CheckBox 
      android:layout_width="84dp" 
      android:layout_height="wrap_content" 
      android:text="Lista?" 
      android:id="@+id/CHECARL" 
      android:layout_x="267dp" 
      android:layout_y="490dp" 
      android:checked="false" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="35dp" 
      android:text="BorrarL" 
      android:id="@+id/BORRARL" 
      android:layout_x="20dp" 
      android:layout_y="520dp" /> 
    </AbsoluteLayout> 

<!-- The navigation drawer --> 
<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:background="#E6E6E7" /> 

+0

использовать «RelativeLayout» в качестве родительского вида, поместить ваши кнопки в нижней части списка релятивирования с помощью alignparentBottom в true и поместить ваш список вверх над кнопками. Безопасно сказать, что ваши кнопки в linearLayout и поместите ваш список вверху, надеюсь, что вы получите эту идею. извините за глупые ошибки – Elltz

+0

Если вы не уверены в макетах в Android, прочитайте документацию. Поскольку существует так много размеров экрана, важно, чтобы вы использовали относительные макеты! поэтому ваш дизайн gui динамичен и работает как можно больше устройств! Прочитайте относительный макет doc ... http://developer.android.com/guide/topics/ui/layout/relative.html –

ответ

2

Вы используете абсолютное расположение, что означает, из документации:

раскладки, которая позволяет указать точное местоположение (х/у координаты) ее дети.

Так что, если вы не видите кнопки, это потому, что они расположены за пределами границ экрана вашего устройства. И их позиция абсолютная/исправлена ​​, поэтому они остаются там, несмотря ни на что.

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

+0

Я скорее использую absolutelayout, потому что я могу перемещать элементы где угодно, но это не работает прямо сейчас, я уже изменил его на относительный, и он работает, мне трудно перемещать элементы в этом макете, но по крайней мере это работает !, спасибо –

0

Возможность номер один:

<?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:background="@color/background" 
       android:clickable="true"> 


    <ListView 
     android:id="@+id/allPaymentListView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/addNewPayment" 

     android:layout_marginTop="10dp"></ListView> 

    <Button 
     android:id="@+id/addNewPayment" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/primary_button_height" 
     android:layout_alignParentBottom="true" 
     android:layout_margin="10dp" 
     android:background="@drawable/blackbutton" 
     android:text="@string/add_new_card" 
     android:textColor="@color/light_blue"/> 


</RelativeLayout> 

В этом случае кнопка будет всегда видно на нижней части страницы, ниже ListView.

Второй possibilty является добавление колонтитула в ListView: http://developer.android.com/reference/android/widget/ListView.html#addFooterView(android.view.View)

В этом случае вид с кнопкой будет последний элемент в ListView.

И не используйте Абсолютную компоновку, это устарело, причина в том, что приложение не будет масштабироваться до разных размеров экрана, как вы хотели.

0

Вы должны использовать RelativeLayout с кнопками внизу, а ListView - над кнопками.

AbsoluteLayout, в целом. которых следует избегать для макетов, если вы не пытаетесь достичь очень конкретной цели. Считается, что анти-шаблон абсолютно позиционирует элементы. Чтобы достичь того, что вы заявили, RelativeLayout станет для вас способом.

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