8

Gmail 应用导航视图

将单击的图像转换为活动帐户图像,并将活动帐户图像从其位置淡入淡入到单击图像的位置。

4

3 回答 3

4

正如我发现这个链接。:https ://github.com/HeinrichReimer/material-drawer 。

在此链接NavigationDrawer中,演示使用Switch Account了更改帐户所需的技术。

为此,您可以通过单击打开Small round corner的屏幕截图(+2)中的右侧来选择您的帐户,DropDown并且您已经选择了您必须使用的帐户。

依赖:

摇篮依赖:

repositories {
    // ...
    maven { url 'https://jitpack.io' }
}
dependencies {
    compile 'com.heinrichreimersoftware:material-drawer:2.3.2'
}

如何使用 :

第 1 步:让您的 Activity 扩展 DrawerActivity:

public class MainActivity extends DrawerActivity {}

第 2 步:设置您的内容:

setContentView(R.layout.activity_main);

第 3 步:设置个人资料:

drawer.setProfile(
        new DrawerProfile()
                .setRoundedAvatar((BitmapDrawable)getResources().getDrawable(R.drawable.profile_avatar))
                .setBackground(getResources().getDrawable(R.drawable.profile_cover))
                .setName(getString(R.string.profile_name))
                .setDescription(getString(R.string.profile_description))
                .setOnProfileClickListener(new DrawerProfile.OnProfileClickListener() {
                    @Override
                    public void onClick(DrawerProfile drawerProfile, long id) {
                        Toast.makeText(MainActivity.this, "Clicked profile #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

第 4 步:填充您的抽屉列表:

drawer.addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_first_item))
                .setTextPrimary(getString(R.string.title_first_item))
                .setTextSecondary(getString(R.string.description_first_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked first item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );
drawer.addDivider();
drawer.addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_second_item))
                .setTextPrimary(getString(R.string.title_second_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked second item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

第 5 步:将 actionBarStyle 添加到您的主题中:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="actionBarStyle">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

第 6 步(可选):更改抽屉主题:

抽屉根据您选择的应用程序主题设置主题,但您也可以对其进行修改。

setDrawerTheme(
        new DrawerTheme(this)
                .setBackgroundColorRes(R.color.background)
                .setTextColorPrimaryRes(R.color.primary_text)
                .setTextColorSecondaryRes(R.color.secondary_text)
                .setTextColorPrimaryInverseRes(R.color.primary_text_inverse)
                .setTextColorSecondaryInverseRes(R.color.secondary_text_inverse)
                .setHighlightColorRes(R.color.highlight)
);

第 7 步(可选):设置您自己的工具栏:

您可以像使用 ActionBarActivity 一样设置自己的工具栏。

setSupportActionBar(toolbar);

输出 :

在此处输入图像描述

在此处输入图像描述

希望这会帮助你快乐编码......

于 2016-07-16T10:52:12.583 回答
4

使用带有布局的动画效果并使其随心所欲。我建议您遵循对我有帮助的教程,并且我将其用于动画。

动画导航示例

https://github.com/mxn21/FlowingDrawer

动画的按钮效果

其他有帮助

https://github.com/XXApple/AndroidLibs/blob/master/%E5%B8%83%E5%B1%80Layout/README.md

它古老但常青的拉维兄弟的例子。

http://www.androidhive.info/2013/06/android-working-with-xml-animations/

于 2016-07-16T04:45:09.297 回答
4

每当有人谈论物化导航抽屉时,我都喜欢这个库的功能,这是一个非常有用的功能。你绝对可以在这里实现它是屏幕截图。

在此处输入图像描述

在此处输入图像描述

这是一款高度可定制的产品,我们几乎在 4 个项目中使用过它,我对它非常满意。在这里阅读。我不太确定动画,但你可以做到这一点,因为它是非常可定制的库

于 2016-07-15T17:21:32.537 回答