Как сохранить выделение всей строки (с HorizontalScrollView) - PullRequest
1 голос
/ 29 декабря 2010

У меня есть ListView, в котором есть строки с двумя TextViews в каждой.Но одно из этих текстовых представлений находится внутри HorizontalScrollView.

Мне нужно следующее поведение в режиме TOUCH:

1) Когда пользователь нажимает любой из TextView, строка ВСЕГО должна быть выделена.Он может прокручивать влево / вправо первое текстовое представление, но вся строка должна оставаться выделенной.

2) После того, как пользователь выпустил «нажатие», строка ДОЛЖНА ОСТАВЛЯТЬСЯ подсвеченной, пока пользователь не нажмет другую строку или прокрутит вверх /вниз по списку.

Заранее спасибо.

Расположение строк:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
>
    <HorizontalScrollView
        android:id="@+id/frmclientes_listview_linha_scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:fillViewport="true"
        android:scrollbars="none"
        android:scrollbarAlwaysDrawHorizontalTrack="false"
        android:scrollbarAlwaysDrawVerticalTrack="false"
        android:fadingEdge="horizontal"
        android:fadingEdgeLength="30sp"
    >
        <TextView
            android:id="@+id/frmclientes_listview_line_firstline"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:ellipsize="marquee"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:gravity="center_vertical"
            android:focusable="false"
            android:lines="1" />
    </HorizontalScrollView>

    <TextView
        android:id="@+id/frmclientes_listview_line_secondline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/frmclientes_listview_linha_scrollView1"
        android:ellipsize="marquee"
        android:gravity="center_vertical"
        android:lines="1"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>

1 Ответ

0 голосов
/ 30 декабря 2010

Вы должны иметь возможность переопределить HorizontalScrollView.draw()

public class HorizontalScrollViewHighlight extends HorizontalScrollView {
    public boolean isHighlighted = false;
    public HorizontalScrollViewHighlight(Context context) {
        super(context, null);
    }
    @Override
    public void draw(Canvas canvas) {
        super.draw(canvas);
        if (isHighlighted)
            // highlight code
        else
            // non-highlighted code
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...