【问题标题】:Android -- Gallery.onItemSelected() causes scrolling to snapAndroid -- Gallery.onItemSelected() 导致滚动捕捉
【发布时间】:2012-03-08 00:09:55
【问题描述】:

我有一个带有箭头指示器的图库,显示左侧或右侧是否有图像。

      <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/black"
        android:layout_weight="1" >
          <com.package.views.MyGallery
            android:id="@+id/carGallery"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:spacing="2dip"
            android:fadingEdge="none" />
          <ImageView
            android:id="@+id/prev"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:src="@drawable/left_orange_arrow"
            android:paddingLeft="25dip" />
          <ImageView
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"
            android:src="@drawable/right_orange_arrow"
            android:paddingRight="25dip" />
      </RelativeLayout>

我这样更新箭头:

carGallery.setOnItemSelectedListener(new OnItemSelectedListener(){
    @Override
    public void onItemSelected(AdapterView<?> adapter, View view, final int position, long id) {
        Car car = carAdapter.getCar(position);
        top.setText(car.nickname);
        bottom.setText(car.year+" "+car.make+" "+car.model);

        if(carAdapter.getItems().size() == 1) {
            prev.setVisibility(View.GONE);
            next.setVisibility(View.GONE);
        }
        else if(position == 0) {
            prev.setVisibility(View.GONE);
            next.setVisibility(View.VISIBLE);
        }
        else if(position == carAdapter.getItems().size()-1) {
            prev.setVisibility(View.VISIBLE);
            next.setVisibility(View.GONE);
        }
        else {
            prev.setVisibility(View.VISIBLE);
            next.setVisibility(View.VISIBLE);
        }
    }
});

每当我更改箭头的可见性时,图库都会捕捉到刚刚滚动到选择的项目。我知道 Gallery.onItemSelected() 导致了捕捉,因为当我执行 Gallery.setCallbackDuringFling(false) 时,它不会在最后一个项目被选中之前进行捕捉。

我可以做些什么来阻止画廊像这样捕捉?

提前致谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 2019-07-14
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 2011-12-06
      • 2019-11-08
      相关资源
      最近更新 更多