如何在Android中执行拖动幻灯片视图

如何在Android中执行拖动幻灯片视图,第1张

概述我需要能够在列出第一个列表视图下面的另一个列表视图的同时将列表视图拖动到左侧和视图之外.我该怎么做呢?解决方法:您可以使用OnTouchListener并在ACTION_MOVE上调整大小或移动某些视图.记得调用setClickable(true)以确保调用ACTION_MOVE.下面是滑动视图的示例:布局:<RelativeLa

我需要能够在列出第一个列表视图下面的另一个列表视图的同时将列表视图拖动到左侧和视图之外.我该怎么做呢?

解决方法:

您可以使用OntouchListener并在ACTION_MOVE上调整大小或移动某些视图.记得调用setClickable(true)以确保调用ACTION_MOVE.

下面是滑动视图的示例:

布局:

<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 slIDingVIEw = ...VIEw draggableVIEw = ... //placed insIDe slIDingVIEw, this is where you touch and dragdraggableVIEw.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.当我的“可拖动视图”是TextVIEw时,我不需要这样做.

总结

以上是内存溢出为你收集整理的如何在Android中执行拖动幻灯片视图全部内容,希望文章能够帮你解决如何在Android中执行拖动幻灯片视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存