gpt4 book ai didi

android - 如何在 Android 中执行拖动幻灯片 View

转载 作者:搜寻专家 更新时间:2023-11-01 08:51:47 25 4
gpt4 key购买 nike

我需要能够将 ListView 向左拖动并移出 View ,同时显示第一个 ListView 下方的另一个 ListView 。我该怎么做呢?

最佳答案

您可以使用 OnTouchListener 并在 ACTION_MOVE 上调整或移动某些 View 。请记住调用 setClickable(true) 以确保调用 ACTION_MOVE。

下面有一个滑动 View 的例子:

布局:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:id="@+id/background_view"
android:layout_width="match_parent"
android:layout_height="match_parent">

(more content)

</LinearLayout>
<LinearLayout
android:id="@+id/sliding_view"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<View
android:id="@+id/draggable_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

(more content)

</LinearLayout>

</RelativeLayout>

设置 View :

View slidingView = ...
View draggableView = ... //placed inside slidingView, this is where you touch and drag
draggableView.setOnTouchListener(new TouchListener(slidingView));
draggableView.setClickable(true); //if not set, only ACTION_DOWN gets called, ACTION_MOVE doesn't

听众:

private class TouchListener implements View.OnTouchListener{

View slidingView;

int initHeight;
float initPos;
ViewGroup.LayoutParams params;

private TouchListener(View slidingView) {
this.slidingView = slidingView;
}

@Override
public boolean onTouch(View v, MotionEvent event) {
if(params == null){
params = slidingView.getLayoutParams();
}

switch (event.getActionMasked()){
case ACTION_DOWN: //get initial state
initHeight = slidingView.getHeight();
initPos = event.getRawY();
break;
case ACTION_MOVE: //do the sliding
float dPos = initPos - event.getRawY();
params.height = Math.round(initHeight + dPos);
slidingView.requestLayout(); //refresh layout
break;
}

return false;
}
}

注意:如果仍然没有调用 ACTION_MOVE,请尝试在调用 setClickable 的同时调用 setFocusable。不过,当我的“可拖动 View ”是 TextView 时,我不需要这样做。

关于android - 如何在 Android 中执行拖动幻灯片 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566416/

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