ورود

View Full Version : متوقف کردن اسکرول شدن یک HorizontalScrollView



meh_ham
چهارشنبه 20 دی 1391, 20:25 عصر
سلام
من یک HorizontalScrollView دارم که چندتا Button داخلش هست که با کلیک/لمس روی هر Button‌ صدای خاصی تولید می‌شه. می‌خواستم بدونم چطور می‌شه اون HorizontalScrollView رو موقتا از اسکرول شدن باز داشت و ثابتش کرد؟ مثلا یه Button تعریف بشه که وقتی کاربر روش کلیک کرد، اون HorizontalScrollView دیگه اسکرول نشه و ثابت بمونه.
ممنون.

hamid_hr
پنج شنبه 21 دی 1391, 08:48 صبح
سلام
اينو تست كردي

.setIsScrollable(false);

meh_ham
پنج شنبه 21 دی 1391, 13:08 عصر
ممنون ولی کار نکرد.
این همون قطعه کد هست که می خوام انجام بدم ولی h_scroll.setEnabled(false); برای API12 به بالا هست...


Button btn_s = (Button) findViewById(R.id.button999);




final HorizontalScrollView h_scroll = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);

btn_s.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {



h_scroll.setEnabled(false);



}

});

hamid_hr
پنج شنبه 21 دی 1391, 15:54 عصر
بالاخره يافتم


h_scroll.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return true;
}
});

meh_ham
پنج شنبه 21 دی 1391, 19:21 عصر
hamid_hr (http://barnamenevis.org/member.php?25531-hamid_hr) ممنون ازت!

این هم کدی که من برای این کار نوشتم:



Button btn_s = (Button) findViewById(R.id.button999);
final HorizontalScrollView h_scroll = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
btn_s.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

if(!return_h_scroll){

return_h_scroll = true;

}
else
return_h_scroll = false;

}

});

h_scroll.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {

return return_h_scroll;

}
});