自定义导航滑块

Custom Navigation slider

我正在尝试在 android 中制作自定义导航抽屉。 它应该妥协于从列表中选择城市的微调视图,然后是城市温度,然后是姓名、电子邮件和联系电话。

我可以创建城市选项并编辑姓名、电子邮件等的文本列表。现在我无法在其中插入临时详细信息。

需要帮助

想一想你怎么能做到这一点!无论如何给你如何做 it.First 在你的布局中制作相对布局,称那个相对布局让我们说 left drawer.After 这给新创建的布局一个颜色,基本上你可能想给白色,好的下一步是给相对布局的高度

match_parent or fill_parent

并且你的布局宽度应该是固定大小...或者如果你希望你的抽屉从屏幕开始到屏幕结束你仍然可以使用上面写的 code.So 毕竟你所要做的就是在您创建的布局上方放置一个按钮(最有用的按钮是 ToggleButton,因为它有 2 个要按下的状态(on/off)),并且该按钮将使您创建的布局变为可见或不可见,所以在这里你有自定义的滑动抽屉,你可以在其中放置你喜欢的任何小部件并在其上放置一些翻译动画以使其成为真实的drawer.Good运气

滑块的关闭动画

public static void playcloseanimationofleftdrawer() {
        TranslateAnimation translateAnimation = new TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f,
                TranslateAnimation.RELATIVE_TO_SELF, -1.0f,
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f,
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f);
        translateAnimation.setInterpolator(new DecelerateInterpolator(2.0f));
        AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
        AnimationSet animation = new AnimationSet(false);
        animation.addAnimation(translateAnimation);
        animation.addAnimation(alphaAnimation);
        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                // Do nothing
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // Do nothing
            }

            @Override
            public void onAnimationEnd(Animation animation) {

            }
        });
        animation.setDuration(500);
        leftdrawer.startAnimation(animation);


    }

滑块的打开动画

 public static void playopenanimationleftdrawer() {
        TranslateAnimation translateAnimation = new TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_SELF, -4.0f,
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f,
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f,
                TranslateAnimation.RELATIVE_TO_SELF, 0.0f);
        translateAnimation.setInterpolator(new DecelerateInterpolator(2.0f));
        AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
        AnimationSet animation = new AnimationSet(false);
        animation.addAnimation(translateAnimation);
        animation.addAnimation(alphaAnimation);
        animation.setDuration(1000);
        animation.setFillAfter(true);
        leftdrawer.startAnimation(animation);
    }