在Listview项目中使用SeekBar

时间:2018-02-04 15:49:14

标签: java android listview android-seekbar

我有一个listview,它有一个带SeekBar的自定义适配器。视图充气很好,但当我触摸SeekBar并尝试更改值时,它不响应点击,什么也不做,我该如何解决?

list_itemx.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:clickable="false"
        android:focusable="false"/>

    <SeekBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:max="100"
        android:progressDrawable="@drawable/seekbar_progress"
        android:thumb="@drawable/seekbar_thumb"
        android:clickable="false"
        android:focusable="false"
        />

</LinearLayout>

适配器中的getView函数

LayoutInflater layoutInflater =  LayoutInflater.from(parent.getContext());
View view;
if (convertView == null){
    view = layoutInflater.inflate(R.layout.dispositivo_list_item, parent, false);
}else{
    view = convertView;
}

final int mPosition = position;
holder = new ViewHolder(view);
holder.progress.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int value, boolean b) {
        changeProgress(mPosition,value);
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {

    }
});
holder.name.setClickable(false);
holder.name.setFocusable(false);
holder.progress.setFocusable(false);

holder.mView.setClickable(false);
return view;

}

编辑:我找到了解决方案。我在回调中调用的函数中有一个notifyDataSetChanged。这就是堵塞SeekBar的原因。无论如何,谢谢你的帮助

0 个答案:

没有答案