2016-08-09 11 views
0

フラグメント内にシークバーを表示しています。シークバーには、カスタムサムとプログレスドローラブルがあります。彼らはうまく表示されますが、私はアクティビティを一時停止してそれに戻ると、プログレスバーの幅がサムの同じ高さに変わってしまいます。私はこの異常な行動の問題を見つけることができません。それは、活動休止後、通常 enter image description hereSeekbar progress drawable異常な動作onPause

表示方法

enter image description here

私のコード:

//フラグメント内部ONSTART

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

//シークバー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

どのバージョンを実行していますか?以前のリリースでは、9パッチを使用する必要がありました。 drawable 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); 
関連する問題