标签: drawertoggle

如何从Android appcompat v7 21库实现DrawerArrowToggle

所以现在Android 5.0发布了,我想知道如何实现动画操作栏图标.

这个库在这里实现它很好但是因为appcompat v7库有它如何实现它?

该库在themes.xml中引用它

 <item name="drawerArrowStyle">@style/Widget.AppCompat.DrawerArrowToggle</item>
Run Code Online (Sandbox Code Playgroud)

在这种风格下

 <style name="Base.V7.Theme.AppCompat" parent="Platform.AppCompat">
Run Code Online (Sandbox Code Playgroud)

UPDATE

我使用v7 DrawerToggle实现了这个功能.但是我无法设计它.请帮忙

我在v7 styles_base.xml中找到了它的样式

<style name="Base.Widget.AppCompat.DrawerArrowToggle" parent="">
    <item name="color">?android:attr/textColorSecondary</item>
    <item name="thickness">2dp</item>
    <item name="barSize">18dp</item>
    <item name="gapBetweenBars">3dp</item>
    <item name="topBottomBarArrowSize">11.31dp</item>
    <item name="middleBarArrowSize">16dp</item>
    <item name="drawableSize">24dp</item>
    <item name="spinBars">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的样式中并且没有用.也添加到我的attr.xml

<declare-styleable name="DrawerArrowToggle">
    <!-- The drawing color for the bars -->
    <attr name="color" format="color"/>
    <!-- Whether bars should rotate or not during transition -->
    <attr name="spinBars" format="boolean"/>
    <!-- The total size of the drawable -->
    <attr name="drawableSize" format="dimension"/>
    <!-- The max gap …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-actionbar drawertoggle android-5.0-lollipop

97
推荐指数
4
解决办法
10万
查看次数

如何检测DrawerLayout是否开始打开?

因此,当导航抽屉开始打开时,我有要隐藏的标签.我完成打开时隐藏了它们的代码,但这不是我想要的.

mDrawerToggle = new ActionBarDrawerToggle(
        this,                 
        mDrawerLayout,        
        R.drawable.ic_drawer,  
        R.string.drawer_open,  
        R.string.drawer_close  
) {
    @Override
    public void onDrawerClosed(View view) {
        invalidateOptionsMenu(); 
        setActionBarMode(ActionBar.NAVIGATION_MODE_TABS);
    }

    @Override
    public void onDrawerOpened(View drawerView) {
        invalidateOptionsMenu(); 
        setActionBarMode(ActionBar.NAVIGATION_MODE_STANDARD);
    }

};
mDrawerLayout.setDrawerListener(mDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

  • 设置onClickListenermDrawerLayout.onClick永远不会被召唤
  • 设置onTouchListenermDrawerLayout.onTouch永远不会被召唤
  • 研究ActionBarDrawerToggleDrawerLayout课程.找不到类似的东西onDrawerStartedOpening.

android navigation-drawer drawerlayout drawertoggle

53
推荐指数
5
解决办法
4万
查看次数

如何使用Appcompat v7 21,工具栏和DrawerLayout动画汉堡到箭头

我使用android.support.v7.widget.Toolbar与android.support.v4.widget.DrawerLayout.它工作正常,导航抽屉关闭时显示汉堡图标,抽屉打开时显示箭头图标.我想在应用程序中的某些事件中禁用抽屉并将Burger图标设置为箭头.我试图将锁定模式设置为关闭,但v7.app.ActionBarDrawerToggle仍显示Burger并打开抽屉.

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

有任何想法吗?谢谢!

更新:

不,我可以更改图标的状态,我可以启用/禁用抽屉,但动画不能使用此方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    Toolbar toolbar = (Toolbar) findViewById(R.id.application_toolbar);
    setSupportActionBar(toolbar);

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.string1, R.string.string2) {
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
        }

        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
        }
    };

    //mDrawerLayout.setDrawerListener(mDrawerToggle); // not needed
    ...
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case android.R.id.home:
            if (mDrawerLayout.getDrawerLockMode(GravityCompat.START) == LOCK_MODE_UNLOCKED) {
                showDrawer();
            } else {
                handleBackButtonPress(); // On this stage the home button is …
Run Code Online (Sandbox Code Playgroud)

android toolbar android-appcompat drawerlayout drawertoggle

33
推荐指数
2
解决办法
4万
查看次数

Android支持工具栏+ ActionBarDrawerToggle不更改为箭头

我正在努力工作的工具栏和抽屉.我正在尝试将汉堡切换为箭头,当我向后台堆叠添加新片段但是没有办法做到这一点.

也许我错过了一些东西,但我找不到办法.有人有同样的问题吗?

这是声明:

mDrawerToggle = new ActionBarDrawerToggle(
            getActivityCompat(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            ((BaseActivity) getActivityCompat()).getToolbar(),
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    )
Run Code Online (Sandbox Code Playgroud)

这是我将一个片段添加到后栈时调用的函数

public void setToggleState(boolean isEnabled) {
    if (mDrawerLayout == null)
        return;

    if (isEnabled) {
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
        mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_UNLOCKED);
    } else {
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
        mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
    }
    mDrawerToggle.syncState();
}
Run Code Online (Sandbox Code Playgroud)

android toolbar navigation-drawer drawertoggle

22
推荐指数
2
解决办法
3万
查看次数

ActionBarDrawerToggle()图标无法设置为Android SDK 5中的ActionBar

我的操作栏初始化我的图标有一个简单的问题.我使用的是Android SDK 5,因为android.support.v4.app.ActionBarDrawerToggle;我已弃用,我导入了v7支持并用以下内容替换了我的导入:android.support.v7.app.ActionBarDrawerToggle; 即与v7相同的包.

现在,当我初始化我的ActionBarDrawerToggle对象以关联DrawerLayout从我导入的对象:import android.support.v4.widget.DrawerLayout;我被迫删除一个参数,这似乎没问题(虽然不知道为什么!).但是我的图标没有进入我的ActionBar.这是我的ActionBarDrawerToggle对象的初始化:

mActionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
            R.drawable.ic_drawer, R.string.drawer_open) {

        /** Called when a drawer has settled in a completely closed state. */
        @Override
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()

        }

        /** Called when a drawer has settled in a completely open state. */
        @Override
        public void onDrawerOpened(View view) {
            super.onDrawerOpened(view);
            invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()

        }
    };
Run Code Online (Sandbox Code Playgroud)

我的资源中有图像 R.drawable.ic_drawer

我似乎无法找到为什么我的图标没有出现在v7中.

PS代码工作得非常好,事实上,当我切换回v4导入并为切换对象初始化添加额外的参数(不得不裸露与丑陋的不赞成交叉线)时,图标出现但不在v7中. …

java android android-actionbar drawertoggle

9
推荐指数
1
解决办法
8263
查看次数

抽屉像谷歌的iOS材料设计

我想将Uber这样的导航抽屉实现到iOS(swift)中.我将通过使用名为KYDrawerController的库来实现它.https://github.com/ykyouhei/KYDrawerController

但是,它不能提供切换按钮,只能滑动动作.以为我想实现显示导航抽屉的切换按钮,我不知道如何将这样的功能添加到库中.如果您知道如何将函数添加到库中,或者如何以其他方式实现我的目的(例如使用其他库),请告诉我.谢谢你的好意.

Uber1 Uber2

ios navigation-drawer drawertoggle material-design

9
推荐指数
1
解决办法
2万
查看次数

Android 5.0 - 以编程方式将AppCompat v7 21主页图标从汉堡动画设置为后退箭头

我目前正在更新Fragment为导向的应用程序(我有一个ActivityFrameLayout容器作为主机为我所有Fragment或多个)材料设计.我想在替换时将汉堡图标设置为后箭头的动画Fragment.

基本上,如果这个不够清楚,就是我想要实现的目标.我不想使用这个库(MaterialMenu),我想使用官方的AppCompatlib来扩展可能.

由于这个解决方案,我实现了这个效果,但我无法弄清楚如何在更换ActionBarDrawerToggle时作为后退按钮Fragment.

所以我的问题是:如果后面的箭头图标仍然是替换ActionBarDrawerToggle后的那个图标Fragement吗?在这种情况下,我如何覆盖它,以便它的作用onBackPressed()而不是打开抽屉?我已经尝试了这个,但它不起作用:

 @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case android.R.id.home:
                getActivity().onBackPressed();
                return true;
         }
         return false;
    }
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android android-appcompat navigation-drawer drawertoggle android-5.0-lollipop

6
推荐指数
2
解决办法
3333
查看次数

android.support.v7 Toolbar&DrawerLayout-如何隐藏汉堡图标

我正在实现工具栏和导航抽屉.我用我自己的视图定制了我的工具栏.我的工具栏中有我自己的菜单(汉堡)图标,用于打开导航抽屉,我在菜单图标(汉堡包)上显示徽章计数.所以我想隐藏默认的汉堡图标.

我试过这样的:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
Run Code Online (Sandbox Code Playgroud)

请帮帮我.谢谢.

android navigation-drawer drawerlayout drawertoggle android-toolbar

6
推荐指数
2
解决办法
6118
查看次数

在Android中打开导航抽屉时,将汉堡操作栏图标更改为旋转箭头不起作用

我在Android应用程序中使用导航抽屉,工作正常.

我想补充一些动画打开关闭抽屉式导航栏.

动画:

1.Opening-Navigation Drawer显示箭头,隐藏汉堡包.

2.Closing-Again显示汉堡包,隐藏箭头.

打开和关闭它应该是旋转.我尝试了一些不工作的代码.

请有人帮我这样做.

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我尝试了这个, 链接我提到

import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;


//for Navigation Bar
        DrawerLayout drawerLayout;
        ListView listView;
        String[] drawerlist;
        ActionBarDrawerToggle drawerListener;

        private MyAdapter4 myAdapter4;

@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alerts);




                //navigation initialize
                        drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
                        listView = (ListView) findViewById(R.id.drawerList);
                        drawerlist …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar navigation-drawer drawertoggle

3
推荐指数
1
解决办法
2741
查看次数

聚合物1.0纸抽屉面板切换不起作用

'my-layout'代码:

<link rel="import" href="../bower_components/iron-icons/iron-icons.html" >
<link rel="import" href="../bower_components/paper-icon-button/paper-icon-button.html" >
<link rel="import" href="../bower_components/paper-drawer-panel/paper-drawer-panel.html" >
<link rel="import" href="../bower_components/paper-header-panel/paper-header-panel.html" >
<link rel="import" href="../bower_components/paper-toolbar/paper-toolbar.html" >

<polymer-element name="m-layout" >
    <template>
      <paper-drawer-panel>

          <paper-header-panel drawer>
            <paper-toolbar>
              <div>Application</div>
            </paper-toolbar>
            <div> Drawer content... </div>
          </paper-header-panel>

          <paper-header-panel main>
            <paper-toolbar>
              <paper-icon-button icon="menu" style="color: white;" paper-drawer-toggle></paper-icon-button>
              <div>Title</div>
            </paper-toolbar>
            <div> Main content... </div>
          </paper-header-panel>

        </paper-drawer-panel>
    </template>

    <script>
      Polymer({
            is: 'm-layout',
            togglePanel: function() {
                this.$.paper_drawer_panel.togglePanel();
            }
      });
    </script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)

如果我添加paper-drawer = toogle属性,主抽屉中的纸图标按钮就会消失...

'main.jsp'代码:

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<html>
  <head>
    <script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

    <link …
Run Code Online (Sandbox Code Playgroud)

behavior toggle polymer drawertoggle

1
推荐指数
1
解决办法
6651
查看次数