добавление дочерних элементов ListView в HorizontalScrollView - PullRequest
0 голосов
/ 15 августа 2011

У меня есть HorizontalScrollView, и я добавляю несколько ListView в качестве его дочерних элементов. мой XML-файл выглядит примерно так для краткости я опущу некоторые атрибуты.

<HorizontalScrollView>
 <LinearLayout>
  <ListView android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
 </LinearLayout>
</HorizontalScrollView>

в моем Java-коде, затем я заполняю ListView данными. Если есть только 1 или 2 записи, ListView не распространяется полностью до нижней части экрана. я вижу то, что кажется прозрачным фоном. как мне избавиться от этого поведения.

Я также пытался использовать этот компонент из http://www.matt -reid.co.uk / blog_post.php? Id = 62 . опять же, у меня та же проблема.

любая помощь приветствуется.

ниже - файл XML. я просто скопировал / вставил контрольный код в свой пакет как demo.fling8.HorizontPager.

 <demo.fling8.HorizontalPager 
android:id="@+id/hp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

  <TextView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:text= "Etiam et dui volutpat purus gravida consequat. Nullam sodales velit a nunc pretium ut tempor urna molestie. Maecenas metus enim, venenatis vel volutpat non, iaculis ut justo. Nulla venenatis malesuada quam at tincidunt. Nunc at sem eros, convallis eleifend arcu. Curabitur gravida velit nec nunc condimentum feugiat. In ultrices orci sit amet purus fermentum placerat in et lacus. Praesent sit amet sodales lectus. Morbi vehicula condimentum purus eu vulputate. Morbi risus enim, rhoncus a iaculis et, porta vitae justo." 
    />
<ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"></ListView>
 </demo.fling8.HorizontalPager>

в моем классе MainActivity.java это мой код для заполнения ListView.

 List<MyObject> dataList = DataAccessService.getDummyData();
 ListView listView = (ListView)findViewById(R.id.lv);
 listView.setAdapter(new MyAdapter(this, R.id.textViewTitle, dataList));

если вы «бросаете» или «проводите», вы заметите, что TextView не страдает от этого эффекта наличия прозрачного фона (весь экран черный). когда вы переходите к ListView, если есть только несколько строк, то от того, где ListView заканчивается к нижней части экрана, появляется прозрачный фон.

Вот ссылка на файл проекта: http://www.box.net/shared/5pybcpj8mkbfhv3j3ach. Пожалуйста, дайте мне знать, если вы не можете получить к нему доступ. при развертывании на устройстве вы увидите эффект (прозрачного фона).

вот ссылка на другой файл проекта: http://www.box.net/shared/i9vs6yq9j2s4ysp994et. этот файл проекта использует только HorizontalScrollView (не компонент, упомянутый выше). как вы, вероятно, заметите, есть прозрачный фон.

Ответы [ 3 ]

1 голос
/ 15 августа 2011

Вы можете опустить HorizontalScrollView, так как ListView автоматически расширяется, а если места нет, он автоматически прокручивается. Просто используйте

    <LinearLayout>
    <ListView android:id="@+id/listView1"/>
    </LinearLayout>
1 голос
/ 15 августа 2011

Если вы хотите реализовать горизонтальный пейджинг, см. Виджет ViewPager в библиотеке совместимости: http://developer.android.com/sdk/compatibility-library.html Он работает вплоть до устройств под управлением Android 1.6.Это также позволяет вам поддерживать работу нескольких страниц в любой момент времени, значительно упрощая иерархию представлений и позволяя работать с большими наборами данных.

0 голосов
/ 15 августа 2011

Я не уверен, поможет ли это, но может

<HorizontalScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
 <LinearLayout>
  <ListView android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
 </LinearLayout>
</HorizontalScrollView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...