Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-带箭头的水平列表视图_Java_Android_Listview - Fatal编程技术网

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:滚动)嗯,我在我的箭头按钮上放置了一个侦听器,并使用前面的方法自动滚动。