不可能なことは何もありませんが、物事を行う方法は難しいかもしれません. このことは直接的には達成できませんが、間接的には達成できますし、達成できました。どのように達成したかは少し複雑ですが、はい、どのように達成したかを共有します。
ListView
をクリックするとTextview
、リストビューのタッチモードをブロックして、それらの toch メソッドが互いにインターセプトしないようにします 。これは、親 ( ) のrequestDisallowInterceptTouchEvent(true);
このブロックを使用して行うことができます。TouchListener
ListView
クリックTextView
すると、タッチリスナーとsetMovementMethod
() も許可されますが、移動のためにカスタムクラスを作成し、クラスはフォローしています
public class myScrollMethod extends ScrollingMovementMethod {
@Override
public void onTakeFocus(TextView widget, Spannable text, int dir) {
// TODO Auto-generated method stub
super.onTakeFocus(widget, text, dir);
}
@Override
public boolean onKeyDown(TextView widget, Spannable buffer,
int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_DOWN:
for (int i = 0, scrollAmount = getScrollAmount(widget); i < scrollAmount; i++) {
down(widget, buffer);
}
return true;
case KeyEvent.KEYCODE_DPAD_UP:
for (int i = 0, scrollAmount = getScrollAmount(widget); i < scrollAmount; i++) {
up(widget, buffer);
}
return true;
default:
return super.onKeyDown(widget, buffer, keyCode, event);
}
}
private int getScrollAmount(TextView widget) {
final int visibleLineCount = (int) ((1f * widget.getHeight()) / widget
.getLineHeight());
int scrollAmount = visibleLineCount - 1;
if (scrollAmount < 1) {
scrollAmount = 1;
}
return scrollAmount;
}
}
その後、親をクリックすると、親セットのTouchIntercepterがtrueに設定され、親を保持してスクロールが開始されます。
このようにして、私はこの要件を正常に達成しました