自定义导航滑块

时间:2015-07-09 08:20:42

标签: android navigation-drawer

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

我可以为城市选项和编辑名称,电子邮件等文本列表。现在我无法在其中插入临时详细信息。

需要帮助

2 个答案:

答案 0 :(得分:0)

想想你怎么能实现这一点!无论如何都给你如何做。首先在你的布局中做出相对布局,调用相对布局让我们说左抽屉。之后给新创建的布局一个颜色,基本上你可能想要给出白色,确定下一步是给出相对布局的高度

match_parent or fill_parent

并且布局的宽度应该是固定大小...或者如果您希望您的抽屉从屏幕的开始到屏幕的结尾,您仍然可以使用上面写的代码。所以这一切你所要做的就是在你创建的布局上方放置一个按钮(最有用的按钮是ToggleButton,因为它有2个状态被按下(打开/关闭)),该按钮将使你创建的布局变为可见或不可见,所以这里有自定义滑动抽屉你可以放置任何你喜欢的小部件,并在其上放置一些翻译动画,使它真正的抽屉。好运

答案 1 :(得分:0)

关闭滑块的动画

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);
    }