DrawerLayout被陷在刷卡 [英] DrawerLayout getting stuck on swipe

查看:150
本文介绍了DrawerLayout被陷在刷卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我玩弄DrawerLayout,我遇到了一个问题。基本上,有时当我从屏幕边缘轻扫DrawerLayout会卡住,直到我举起我的手指离开屏幕(参见下图)

我不知道是什么了,我也跟着从谷歌SDK完全code样本。任何想法?

这里是我唯一在我FragmentActivity:

  @覆盖
    保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        最终的String []名=
                。getResources()getStringArray(R.array.nav_names);
        ArrayAdapter<字符串>适配器=
                新的ArrayAdapter<字符串>(
                        getActionBar()。getThemedContext(),
                        android.R.layout.simple_list_item_1,姓名);

        最后DrawerLayout抽屉=
                (DrawerLayout)findViewById(R.id.drawer_layout);
        最终的ListView navList =
                (ListView控件)findViewById(R.id.drawer);
        navList.setAdapter(适配器);
        navList.setOnItemClickListener(新AdapterView.OnItemClickListener()
        {

            @覆盖
            公共无效onItemClick(适配器视图<>父,
                                    视图中查看,最终诠释POS,长I​​D)
            {
                drawer.setDrawerListener(
                        新DrawerLayout.SimpleDrawerListener()
                        {
                            @覆盖
                            公共无效onDrawerClosed(查看drawerView)
                            {
                                super.onDrawerClosed(drawerView);

                            }
                        });
                drawer.closeDrawer(navList);
            }
        });

    }
 

解决方案

请注意,你可以解决这个问题呢20dp通过设置可点击属性设置为true的DrawerLayout内的FrameLayout偷看功能。

  

机器人:可点击=真正的

例如: <一href="http://developer.android.com/training/implementing-navigation/nav-drawer.html">http://developer.android.com/training/implementing-navigation/nav-drawer.html

 &LT; android.support.v4.widget.DrawerLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@ + ID / drawer_layout
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent&GT;
    &LT;! - 其主要内容视图 - &GT;
    &LT;的FrameLayout
        机器人:ID =@ + ID / content_frame
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent
        机器人:可点击=真/&GT;
    &LT;! - 导航抽屉 - &GT;
    &LT;的ListView
        机器人:ID =@ + ID / left_drawer
        机器人:layout_width =240dp
        机器人:layout_height =match_parent
        机器人:layout_gravity =开始
        机器人:后台=#111
        机器人:choiceMode =singleChoice
        机器人:分隔=@机器人:彩色/ darker_gray
        机器人:dividerHeight =1DP/&GT;
&LT; /android.support.v4.widget.DrawerLayout>
 

I am playing around with DrawerLayout and I am encountering an issue. Basically sometimes when i swipe from the edge of the screen the DrawerLayout will get stuck until i lift my finger off the screen (See screenshot below)

I am not sure what is up, I followed the code sample from the google sdk exactly. Any ideas?

And here is the only thing i have in my FragmentActivity:

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final String[] names =
                getResources().getStringArray(R.array.nav_names);
        ArrayAdapter<String> adapter =
                new ArrayAdapter<String>(
                        getActionBar().getThemedContext(),
                        android.R.layout.simple_list_item_1, names);

        final DrawerLayout drawer =
                (DrawerLayout)findViewById(R.id.drawer_layout);
        final ListView navList =
                (ListView) findViewById(R.id.drawer);
        navList.setAdapter(adapter);
        navList.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {

            @Override
            public void onItemClick(AdapterView<?> parent,
                                    View view, final int pos, long id)
            {
                drawer.setDrawerListener(
                        new DrawerLayout.SimpleDrawerListener()
                        {
                            @Override
                            public void onDrawerClosed(View drawerView)
                            {
                                super.onDrawerClosed(drawerView);

                            }
                        });
                drawer.closeDrawer(navList);
            }
        });

    }

解决方案

Note that you can get around this 20dp peek feature by setting the clickable attribute to true on the FrameLayout within the DrawerLayout.

android:clickable="true"

for instance : http://developer.android.com/training/implementing-navigation/nav-drawer.html

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />
    <!-- The navigation drawer -->
    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/darker_gray"
        android:dividerHeight="1dp" />
</android.support.v4.widget.DrawerLayout>

这篇关于DrawerLayout被陷在刷卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆