2016-03-22 114 views
0

我有一個(自定義)SeekBar嵌套在RelativeLayoutLinearLayout它顯示爲ListView的項目。現在,只要我更新TextView(通過setTextonProgressChanged我收到ACTION_CANCEL,我的移動/拖動SeekBar被取消。如果不更新TextView,可以正常工作。SeekBar移動/拖動不工作

任何想法是什麼問題?

內容的layout.xml

<LinearLayout> 
    <LinearLayout> 
     <RelativeLayout> 

      <TextView /> 

      <SeekBar /> 
     </RelativeLayout> 
    </LinearLayout> 
</LinearLayout> 

代碼定製SeekBar

@Override 
public void onProgressChanged(SeekBar seekBar, int progress, 
     boolean fromUser) { 
    if (fromUser) { 
     mProgressTextView.setText(String.valueOf(progress)); 
    } 
} 

順便說一句:這個問題只發生在上prvious Android版本6.工作正常。

+0

你可以把你的代碼 –

+0

你有多重覆蓋你的進度參數併除以increamentProgressBy值。就像progress = progress/increamentProgressBy; –

+0

的種類。這個SeekBar的目的是選擇16度到28度之間的溫度,步長爲0.5度。所以SeekBar的值/進度是在[0,12]中映射到溫度並顯示在TextView中。進度本身沒有被操縱 – GeneralOfTheFelixLegions

回答

0

這是一個有點晚,但我在ListView也有一個問題,一個SeekBar接收MotionEventACTION_CANCEL移動和不釋放觸摸的SeekBar的步驟到達時。

問題是我改變了一些數據,並在列表適配器上調用notifyDataSetChanged,每次調用SeekBar時都會調用onProgressChanged

解決方法:避免調用onProgressChangednotifyDataSetChanged,更改數據,並調用notifyDataSetChanged在功能您SeekBar.OnSeekBarChangeListeneronStopTrackingTouch

注意:在我的列表適配器中,我還在每次調用onProgressChanged時更改TextView的文本,並且不會導致任何問題。