我有一个ListView,每行有两个TextView。但是,其中一个文本视图位于HorizontalScrollView内。
我希望在触摸模式中有以下行为:
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>
答案 0 :(得分:0)
您应该能够覆盖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
}
}