gpt4 book ai didi

java - onFling 和 LinearLayout

转载 作者:行者123 更新时间:2023-12-02 05:11:04 34 4
gpt4 key购买 nike

我的线性布局:main_linear_layout包含四个线性布局:ll1 ll2 ll3 ll4.每个LinearLayout 都包含Buttons。我正在尝试在 main_linear_layout 上实现 onFling 方法。我希望能够在按钮布局上的任意位置滑动并调用操作。

目前,我可以在屏幕上除按钮布局之外的任何位置滑动。我尝试使用以下代码来解决该问题:

swipeLayout = (LinearLayout) findViewById(R.id.main_linear_layout);
//swipeLayout is the main Layout that contains 4 other linear layouts

swipeLayout.setOnTouchListener(new View.OnTouchListener() {

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

但我仍然无法在按钮的布局上滑动。有人知道这是为什么吗?我还需要实现其他什么吗?我是否应该为主线性布局内的每个线性布局实现一个 OnTouchListener ?或者每个布局中的每个Button

xml 中,我向主线性布局添加了一堆代码:

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:longClickable="true"

但这也不起作用。有人可以帮忙吗?

最佳答案

如果您有一个 LinearLayout,然后在其中有更多布局,然后按照您所说的那样在这些布局上添加按钮,那么这将按预期运行。

您只是将监听器添加到外部布局中......所以当然,它只会在您在其上滑动时触发。通过在其他布局甚至按钮上滑动,滑动事件甚至不会到达该监听器,因为它已被消耗。

您需要将监听器添加到要检查的每个元素。

实现此目的的一种方法是创建一个按钮数组并一次完成所有操作:

private Button button1;
private Button button2;
....
private Button button10;

...
protected void onCreate(Bundle b) {
super.onCreate(b);
button1 = findViewById(R.id.button1);
...
button10 = findViewById(R.id.button10);
OnClickListener onCL = new OnClickListener . . . //do all of your creation here
Button[] buttons = {button1, button2, . . . , button10};
for(Button b : buttons) {
b.setOnClickListener(onCL);
}
}

关于java - onFling 和 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339576/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com