Галерея теряет фокус - PullRequest
       15

Галерея теряет фокус

0 голосов
/ 13 декабря 2011

Я написал код для увеличения выбранного изображения в моей галерее, я не знаю, почему каждый раз, когда я прокручиваю, галерея теряет фокус, вот мой код.

gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View v,
                int position, long id) {

            if (lasview != null)
                lasview
                        .setLayoutParams(new Gallery.LayoutParams(130, 195));
            lasview = v;
            v.setLayoutParams(new Gallery.LayoutParams(170, 230));

        }

        public void onNothingSelected(AdapterView<?> parent) {
            // System.out.println("NOTHING SELECTED");

        }
    });

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Попробуйте lasview.getLayoutParams() и установите вместо этого значения в полученных LayoutParams.
Вызов setLayoutParams() вызывает перерисовку / обновление, что может привести к вашей проблеме.

0 голосов
/ 19 января 2012

Я сам решил проблему следующим образом.

     <Gallery
        android:id="@+id/gallery1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="50"
        android:nextFocusDown="@+id/gallery1"
        android:nextFocusLeft="@+id/gallery1"
        android:nextFocusRight="@+id/gallery1"
        android:nextFocusUp="@+id/gallery1" 
        android:focusable="false"
        android:clickable="false"
        android:focusableInTouchMode="false"
        android:descendantFocusability="afterDescendants"/>

В Деятельности

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {

        gl.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);

        return true;
    }
    if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {

        gl.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);

        return true;
    }
            return false;

}

Это работает для меня.

...