Android - Галерея привязки при изменении видимости дочернего вида - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть Галерея, в которую я поместил указатели стрелок.

  <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);
        }
    }
});

Проблема: Каждый раз, когда я обновляю видимость стрелок, галерея привязывается к выбранному изображению, делая прокрутку очень нервной.Я нигде не вызываю BaseAdapter.notifyDataSetChanged ().Кто-нибудь может пролить свет на эту проблему?

...