Java Android-带箭头的水平列表视图
我试图用两个箭头创建一个水平列表视图,一个向左移动,一个向右移动 我希望这些箭头只在卷轴太大而无法一块显示时显示 我有以下布局:Java Android-带箭头的水平列表视图,java,android,listview,Java,Android,Listview,我试图用两个箭头创建一个水平列表视图,一个向左移动,一个向右移动 我希望这些箭头只在卷轴太大而无法一块显示时显示 我有以下布局: <LinearLayout android:id="@+id/availability_ctx_right_col" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orient
<LinearLayout
android:id="@+id/availability_ctx_right_col"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/availability_ctx_level1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#706969"
android:orientation="horizontal">
<ImageView
android:id="@+id/availability_ctx_level1_left"
android:src="@drawable/arrow_left"
android:contentDescription="@string/left"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:visibility="invisible" />
<ImageView
android:id="@+id/availability_ctx_level1_right"
android:src="@drawable/arrow_right"
android:contentDescription="@string/right"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:visibility="invisible" />
<com.my.package.HorizontalListView
android:id="@+id/availability_ctx_level1_list"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_toRightOf="@id/availability_ctx_level1_left"
android:layout_toLeftOf="@id/availability_ctx_level1_right" />
</RelativeLayout >
<RelativeLayout
android:id="@+id/availability_ctx_level2"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#5a4f4f"
android:orientation="horizontal">
<ImageView
android:id="@+id/availability_ctx_level2_left"
android:src="@drawable/arrow_left"
android:contentDescription="@string/left"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:visibility="invisible" />
<ImageView
android:id="@+id/availability_ctx_level2_right"
android:src="@drawable/arrow_right"
android:contentDescription="@string/right"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:visibility="invisible" />
<com.my.package.HorizontalListView
android:id="@+id/availability_ctx_level2_list"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_toRightOf="@id/availability_ctx_level2_left"
android:layout_toLeftOf="@id/availability_ctx_level2_right" />
</RelativeLayout >
<RelativeLayout
android:id="@+id/availability_ctx_level3"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#706969"
android:orientation="horizontal">
<ImageView
android:id="@+id/availability_ctx_level3_left"
android:src="@drawable/arrow_left"
android:contentDescription="@string/left"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:visibility="invisible" />
<ImageView
android:id="@+id/availability_ctx_level3_right"
android:src="@drawable/arrow_right"
android:contentDescription="@string/right"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:visibility="invisible" />
<com.my.package.HorizontalListView
android:id="@+id/availability_ctx_level3_list"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_toRightOf="@id/availability_ctx_level3_left"
android:layout_toLeftOf="@id/availability_ctx_level3_right" />
</RelativeLayout >
</LinearLayout>
我的HorizontalListView类正在全面运行并扩展了AdapterView
是否有办法只显示所需的箭头以及如何移动到列表中的下一项
谢谢
问候。我终于用一点技巧解决了我的问题:
private int item_width = 70; // Width in pixel
public void scrollLeft()
{
mNextX -= item_width;
mScroller.fling(mNextX, 0, -50, 0, 0, mMaxX, 0, 0);
requestLayout();
}
public void scrollRight()
{
mNextX += item_width;
mScroller.fling(mNextX, 0, -50, 0, 0, mMaxX, 0, 0);
requestLayout();
}
如果它可以帮助某人…将下面的代码添加到HorizontalListView类中,请在操作事件中实现它;您可以像viewPager一样滚动horizontalListView
/**
* scrollLeft : scroll the list to left
*/
public void scrollToLeft() {
mNextX -= getMeasuredWidth();
mScroller.fling(mNextX, 0, -50, 0, 0, mMaxX, 0, 0);
requestLayout();
}
/**
* scrollRight : scroll the list to right
*/
public void scrollToRight() {
mNextX += getMeasuredWidth();
mScroller.fling(mNextX, 0, -50, 0, 0, mMaxX, 0, 0);
requestLayout();
}
您尝试了HorizontalListView的哪个实现?这一个我已经成功地用代码向右滚动:
drop1.setSelection(drop1.getSelectedItemPosition()+1)代码>但我无法向左滚动。使用drop1.setSelection(drop1.getSelectedItemPosition()-1)代码>什么都没发生。看看我在这个论坛上的评论(dev smart),我通过编程实现了滚动。谢谢我尝试了一些东西,但它只工作了一次,然后我就可以再使用它了。下面是代码intscroll=drop1.getScrollY()-px代码>drop1.scrollTo(滚动<0?0:滚动)代码>嗯,我在我的箭头按钮上放置了一个侦听器,并使用前面的方法自动滚动。