Панель поиска Android - большой палец становится невидимым после установки его для рисования - PullRequest
1 голос
/ 10 января 2012

У меня есть панель поиска, и я устанавливаю большой палец в коде.Когда начинается действие, я вижу измененный рисунок для большого пальца, но если я запускаю новое действие из действия панели поиска и возвращаюсь, большой палец панели поиска становится невидимым (только если я снова установил его для рисования).Это происходит только в том случае, если я возвращаюсь из другого действия к действию панели поиска.

Мне нужно изменить рисование большого пальца в onRestart (), потому что другие действия могут изменить цвет или форму большого пальца, и янеобходимо обновить его для рисования.

Я пытался сделать инвалидом () на панели поиска, но безрезультатно ...

РЕДАКТИРОВАТЬ: Я пытался сделать 3 статических Drawableобъекты и загружать изображения в onCreate (), и я заметил, что после возвращения к активности SeekBar, если я устанавливаю большой нарисованный большой палец на тот, который уже установлен, большой палец виден, но если я изменяю рисованный, большой палец становится невидимым.

РЕДАКТИРОВАТЬ 2:

В этом случае я установил загруженные объекты на большой палец:

String gender = getGender();
    if (gender.equals(Profile.GENDER_1)) {
        mSeekBar.setThumb(mDrawable1);
    } else if (gender.equals(Profile.GENDER_2)) {
        mSeekBar.setThumb(mDrawable2);
    } else {
        mSeekBar.setThumb(mDrawable3);
    }

И это еслиЯ пытаюсь получить ничьи из ресурсов

Пол строки = getGender ();

if (gender.equals(Profile.GENDER_1)) {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_1);
} else if (gender.equals(Profile.GENDER_2)) {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_2);
} else {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_3);
}

mSeekBar.setThumb(mDrawable);

В обоих случаях большой палец становится невидимым.

Что может бытьэта проблема?кто-нибудь знает ответ?Спасибо!

1 Ответ

13 голосов
/ 16 января 2012

Вы не устанавливаете границы рисованного объекта перед его использованием.

Попробуйте добавить эту строку перед вызовом setThumb ():

mDrawable.setBounds(0,0, 
    mDrawable.getIntrinsicWidth(), 
    mDrawable.getIntrinsicHeight()
);
...