Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在从左侧滑入的Listview项目顶部添加一个按钮(带有动画)_Android_Listview - Fatal编程技术网

Android 在从左侧滑入的Listview项目顶部添加一个按钮(带有动画)

Android 在从左侧滑入的Listview项目顶部添加一个按钮(带有动画),android,listview,Android,Listview,我有一个项目列表视图,当按下其中一个项目时,我希望有三个按钮从屏幕右侧滑入。以下是一个例子: listview项目(如果尚未单击): listview项目(如果已单击): 我还对通过半透明灰色覆盖选择的项目“变暗”感兴趣。这可能吗?这样做的最佳方式是什么?我一直在做研究,但一切似乎都是以手势为导向的,更多的是关于删除项目。在按钮中滑动应该不会太困难。您需要做的是将它们包装在父容器中(例如,水平LinearLayout)。将父容器的可见性设置为android:visibility=“invis

我有一个项目列表视图,当按下其中一个项目时,我希望有三个按钮从屏幕右侧滑入。以下是一个例子:

listview项目(如果尚未单击):

listview项目(如果已单击):


我还对通过半透明灰色覆盖选择的项目“变暗”感兴趣。这可能吗?这样做的最佳方式是什么?我一直在做研究,但一切似乎都是以手势为导向的,更多的是关于删除项目。

在按钮中滑动应该不会太困难。您需要做的是将它们包装在父容器中(例如,水平
LinearLayout
)。将父容器的可见性设置为
android:visibility=“invisible”
。然后,在代码中,为
ListView
项设置
OnClickListener
,以在您创建的父容器上启动一个转换动画,从左向右滑动它。确保在启动动画时将父容器的可见性设置回“可见”(例如,在代码中附加到动画的
animationstart()中的
AnimationListener
方法中)

动画可以存储在XML中,如下所示:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">

  <translate android:fromXDelta="-100%" android:toXDelta="0%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:duration="400"/>
</set>

谢谢你的建议。我现在就要开始研究这个方法了。你能详细说明一下我需要如何在onclick监听器中启动转换吗?
TranslateAnimation translateAnim = (TranslateAnimation) AnimationUtils.loadAnimation(this, R.anim.your_slide_in_animation);
translateAnim.setInterpolator(new LinearInterpolator());
translateAnim.setAnimationListener(new AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        buttonParentView.setVisibility(View.VISIBLE);
    }

        @Override
        public void onAnimationEnd(Animation animation) {}

        @Override
        public void onAnimationRepeat(Animation animation) {}
    });

buttonParentView.startAnimation(translateAnim);