HorizontalScrollView + ListView

Интерфейс, диалоги, темы, стили, меню
Ответить
Roger68
Сообщения: 16
Зарегистрирован: 12 фев 2013, 23:43

HorizontalScrollView + ListView

Сообщение Roger68 » 28 фев 2013, 16:05

День добрый!
Насколько я разобрался, ListView вертикальную прокрутку организует сам, а для горизонтальной надо его засунуть в HorizontalScrollView. И все замечательно работает, пока ширина ListView больше ширины экрана. Но вот в обратном случае, HorizontalScrollView плюет на указанное ему "match_parent" в ширину и в итоге вертикальная прокрутка ListView вылезает посреди экрана, его разделители обрываются там же.

Как сие забороть ? Как заставить HorizontalScrollView растянуться по всему экрану в ширину ?

Вот собссно, образец

Код: Выделить всё

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ReportActivity" >

    <RelativeLayout
        android:id="@+id/msg_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <TextView
            android:id="@+id/msg_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:text=""
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/msg_btn"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:onClick="onClickHideMsg"
            android:text="@string/msg_x" />

    </RelativeLayout>
    
    <HorizontalScrollView
        android:id="@+id/horzScroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_above="@+id/msg_layout" >

        <ListView
            android:id="@+id/listView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </ListView>
        
    </HorizontalScrollView>        

</RelativeLayout>
ЗЫ: если выставить у ListView

Код: Выделить всё

android:layout_width="match_parent"
Eclipse нехорошо ругается и ничего не меняется

Roger68
Сообщения: 16
Зарегистрирован: 12 фев 2013, 23:43

Re: HorizontalScrollView + ListView

Сообщение Roger68 » 28 фев 2013, 18:13

А ларчик просто открывалсо. У HorizontalScrollView надо было воставить android:fillViewport="true"
Спасибо.

djdance
Сообщения: 48
Зарегистрирован: 04 дек 2012, 15:33

Re: HorizontalScrollView + ListView

Сообщение djdance » 02 мар 2013, 15:27

а что делает вьюпорт, если по-русски объяснить?

но мне это не помогло, не могу понять, как сделать резиновый дизайн:
к боттому прижато (сверху вниз):
- 3 текствью
- линейный лаер1, в котором к боттому прижато
---линейный лаер2 со скроллом
---линейный лаер3 с текствью

так вот лаер2 при установке высоты в филл-парент растягивается до высоты своего парента - лаера1, соответственно, вылезая вверх на ширину лаера3.

А как сделать, чтобы серединный лаер2 заполнял все оставшееся ему пространство?

djdance
Сообщения: 48
Зарегистрирован: 04 дек 2012, 15:33

Re: HorizontalScrollView + ListView

Сообщение djdance » 03 мар 2013, 18:01

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

Ответить