SeekBar 및 ScrollView가있는 사용자 정의 레이아웃이있는 활동이 있습니다. 탐색 바를 프로그래밍 방식으로 움직일 때마다 scrollview가 최상위로 재설정되고 (onLayout이 호출됨을 의미), 어떻게 ScrollView가 재설정되지 않도록 설정합니까?SeekBar가 움직일 때 Android ScrollView가 재설정됩니다.
2
A
답변
6
당신은 ... 또 다시 (getView()
방법) 행을 작성해서는 안
@Override
public View getView(int position, View arg1, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = getLayoutInflater();
View row = arg1;
if(row==null)
{
row = inflater.inflate(R.layout.listview_item_row, parent, false);
}
// Log.d("position", ""+str[position]);
Button b1 = (Button)row.findViewById(R.id.btn);
final SeekBar s1 = (SeekBar)row.findViewById(R.id.seekBar1);
//s1.setFocusable(true);
b1.setText(str[position]);
b1.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Progress is "+s1.getProgress()+"%", Toast.LENGTH_LONG).show();
}
});
return row;
}
0
나는이 동일한 문제점을 가지고 있으며, 지금까지 나는 그것을 해결할 수 없었습니다.
QuickScroll이라는 ScrollView에서 Scoll을 설정하는 SeekBar onStartTrackingTouch를 설정하는 동안 몇 가지 시도를했습니다. 이 작업은 스크롤을 설정하는 측면에서 효과적 이었지만 seekBar에서 진행률이 변경 될 때마다 ScrollView는 신속하게 재설정 한 다음 설정 위치로 돌아 왔습니다. 이 (0,0)로 스크롤을 재설정 뷰 그룹 onLayout가 내 사용자 정의에 호출되는 당신이 그러나, 볼 수있는 많은 다른 것들 중에서
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
quickScroll.post(new Runnable() {
@Override
public void run() {
//quickScroll.requestDisallowInterceptTouchEvent(true);
//quickScroll.setEnabled(false);
quickScroll.scrollTo(0, 54);
// quickScroll.requestDisallowInterceptTouchEvent(true);
}
});
}
. 그것이 일어날 때마다 onLayout()은 모든 버튼 누름에서 호출되지만 SeekBar가 변경되면 ScrollView 만 재설정됩니다. 이 문제에 대한 해결책을 찾았 으면 알려주십시오.