2016-08-09 2 views
0

Я показываю внутри фрагмент. В строке поиска есть пользовательский указатель большого пальца и прогресс. Они отображаются хорошо, однако, когда я приостанавливаю активность и возвращаюсь к ней, ширина полосы выполнения странно увеличивается до той же высоты большого пальца! Я не могу найти проблему для этого ненормального поведения.Продвижение прокрутки, вызываемое ненормальным поведением, на Pause

, как он отображает нормально enter image description here

после паузы активности enter image description here

мой код:

// внутри фрагмента OnStart

seekBar.setThumb(getResources().getDrawable(R.drawable.form_bg)); 
      seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.progress)); 

// SeekBar XML

<SeekBar 
        android:id="@+id/seekBar" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="8dp" 
        android:indeterminate="false" 
        android:layout_marginTop="5dp" 
        android:max="100" 
        android:maxHeight="6dp" 
        android:progress="50" /> 

// рисуем большой палец

<?xml version="1.0" encoding="utf-8"?> 
<shape android:shape="oval" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <size android:height="@dimen/seekbar_tumb_size" android:width="@dimen/seekbar_tumb_size" /> 
    <solid android:color="@color/form_color" /> 
</shape> 

// прогресс вытяжке

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:top="0dp" android:bottom="0dp" android:gravity="center_vertical" android:id="@android:id/background"> 
    <shape> 

     <solid android:color="@color/activity_bg" /> 
    </shape> 
</item> 

<item android:gravity="center_vertical" android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <solid android:color="@color/form_color_syrup" /> 
     </shape> 
    </clip> 
</item> 

+0

В какой версии вы работаете? В более ранних версиях вам приходилось использовать девять патчей; поддержка доступных ресурсов XML не была на том уровне, в котором она сейчас находится. –

+0

Я тестирую на Android 5.1, однако я использовал тот же код в предыдущем приложении (использовал искатель внутри действия, а не фрагмент), и он работал правильно. Я не знаю, что здесь не так. – Bialy

ответ

0

Наконец нашел решение этой проблемы.

Rect bounds = seekBar.getProgressDrawable().getBounds(); 

    seekBar.setThumb(getResources().getDrawable(R.drawable.form_bg)); 
    seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.progress)); 

seekBar.getProgressDrawable().setBounds(bounds); 
Смежные вопросы