标签: drawerlayout

同一活动中的导航抽屉和视图寻呼机

我试图在同一活动中实现导航抽屉和视图寻呼机.导航抽屉工作正常,但视图寻呼机不工作,我也在导航抽屉打开时右侧滑动指针(空指针在android.支持.v4.小部件.GrawerLayout.isContentView(DrawerLayout.java:840).我我附加了主要的xml布局和代码.

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>

<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" >     
    <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/transparent"
        android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

活动类如下

public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;

private CharSequence mDrawerTitle;
private CharSequence mTitle;
private String[] mPlanetTitles;
private MainActivity mContext;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mContext = this;
    ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
    CustomPagerAdapter adapter = new CustomPagerAdapter(mContext);
    vp.setAdapter(adapter);
    vp.setPageTransformer(false, new ViewPager.PageTransformer() {

        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager navigation-drawer drawerlayout

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

Android,什么是不使用支持库时等效的DrawerLayout类?

由于我的最低SDK版本是14,我不想在我的应用程序中添加支持库.根据Android在DrawerLayout页面上的说法,此视图组在support library(android.support.v4.widget)中定义.

DrawerLayout如果我不添加支持库,是否有任何等效的类?谢谢.

android android-compatibility android-support-library drawerlayout

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

在Robolectric中,如何使用MeasureSpec.EXACTLY错误测量DrawerLayout?

我正在尝试将DrawerLayout添加到我的导航应用程序中,并且我正在使用Robolectric测试我的应用程序(我已经在Robolectric 2.1.1和2.1-SNAPSHOT中看到了这个问题 - 2.2-20130712.161723-17)

我使用以下xml作为抽屉布局的基础.当我将andioid:layout_width或android:layout_height设置为抽屉布局上的"match_parent"时,我在Robolectric中遇到错误.

<?xml version="1.0" encoding="utf-8"?>
<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" />
    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="250dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#D8D8D8"
        android:dividerHeight="1dp"
        android:background="#F2F2F2"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

这是我遇到的错误的堆栈跟踪:

java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
    at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:591)
    at android.view.View.measure(View.java:15172)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.view.View.measure(View.java:15172)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
    at android.view.Choreographer.doFrame(Choreographer.java:525)
    at android.view.Choreographer$FrameHandler.handleMessage(Choreographer.java:657)
    at org.robolectric.shadows.ShadowHandler.routeMessage(ShadowHandler.java:125)
    at org.robolectric.shadows.ShadowHandler.access$100(ShadowHandler.java:25)
    at …
Run Code Online (Sandbox Code Playgroud)

android-layout robolectric drawerlayout

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

Android DrawerLayout没有显示正确的指示器图标

我正在尝试使用新的DrawerLayout作为列表.问题是虽然我设置了抽屉监听器,但操作栏上的指示器仍然是箭头图标而不是我打算绘制的3行图标.以下是OnCreate函数:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_front_page);

    // Swiping Pager set up
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    // Sliding Drawer set up
    mHabitContract = new HabitsContract(this);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.front_page_layout);
    mDrawerList = (ListView) findViewById(R.id.habit_list);
    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
    mDrawerList.setAdapter(new HabitAdapter(mHabitContract.GetHabitItems(), this));

    // Fixme: Indicator image doesn't show up
    mDrawerToggle = new ActionBarDrawerToggle(
            this,                  /* host Activity */
            mDrawerLayout,         /* DrawerLayout object */
            R.drawable.ic_navigation_drawer,  /* nav drawer image to replace 'Up' caret */
            R.string.drawer_open,  /* "open drawer" description …
Run Code Online (Sandbox Code Playgroud)

android drawerlayout

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

通过ToolbarAndroid => onIconClicked显示DrawerLayoutAndroid

我是React native(和React)的新手,我正在玩它.

我设法添加一个DrawerLayout,我可以从屏幕左侧拖动.但是,当我点击ToolbarAndroid中的菜单图标时,我想打开它.

我试图使用"refs"但它似乎不起作用

我希望我足够清楚.

谢谢

drawerlayout react-native

18
推荐指数
2
解决办法
7745
查看次数

DrawerLayout.openDrawer第一次不起作用

我正在使用android.support.v4.widget.DrawerLayout我的活动.只要我使用滑动手势打开它,它就可以正常工作.

但是,当我想通过按钮点击通过调用打开它时drawer.openDrawer(Gravity.LEFT),它不起作用.

但是,如果我使用滑动手势打开一次,之后按钮单击即可正常工作.

知道如何解决或解决这个问题吗?

android drawerlayout

17
推荐指数
2
解决办法
7191
查看次数

如何在设备屏幕的右侧设置抽屉布局图标?

我已经创建了抽屉布局示例应用程序,它工作正常,我的问题是抽屉布局从右到左完美地工作但我试图将图标左侧移动到右侧但它不起作用给我你的建议.. !!! 这有可能吗?

在此输入图像描述

<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"
    android:layout_gravity="right" >

    <!-- The main content view -->

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         />
    <!-- The navigation drawer -->

    <ListView
        android:id="@+id/drawer_list"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

android android-listview drawerlayout

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

如何使用DrawerLayout打开活动时删除延迟?

我有一个带有DrawerLayout的活动但是无论什么时候它打开都有一个延迟,就像分秒,屏幕是白色的,然后画出我的屏幕.

转换结束后会发生这种情况.所以它有点像屏幕动画过渡是跳跃.

在将视图与ButterKnife绑定后,我尝试将它放在我的OnCreate上,但它没有做任何事情.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        postponeEnterTransition();
        drawerLayout.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            public boolean onPreDraw() {
                drawerLayout.getViewTreeObserver().removeOnPreDrawListener(this);
                startPostponedEnterTransition();
                return true;
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

是的我正在为Lollipop优化它,对于Lollipop之前的设备,我是jsut使用overridePendingTransitions,它工作正常.我的问题只在Lollipop设备上.

顺便说一句,我的Enter和Exit转换都是fade_in_out用xml定义的,并在其中指定styles

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorAccent">@color/pink</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowActivityTransitions">true</item>
    <item name="android:windowContentTransitions">true</item>
    <!-- specify enter and exit transitions -->
    <!-- options are: explode, slide, fade -->
    <item name="android:windowEnterTransition">@transition/fade_in_out_transition</item>
    <item name="android:windowExitTransition">@transition/fade_in_out_transition</item>

    <!-- specify shared element transitions -->
    <item name="android:windowSharedElementEnterTransition">@transition/change_clip_bounds</item>
    <item name="android:windowSharedElementExitTransition">@transition/change_clip_bounds</item>
    <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item>
</style>
Run Code Online (Sandbox Code Playgroud)

animation android material drawerlayout android-transitions

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

NavigationView抛出错误:未找到包中属性"menu"的资源标识符

我想在我的布局中添加NavigationView,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">


    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />

        <android.support.design.widget.NavigationView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:menu="@menu/drawer" />

    </android.support.v4.widget.DrawerLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但问题是我在编译过程中遇到错误,如下所示:

C:\Users\IBM_ADMIN\Documents\Androidprojects\supporttest\app\src\main\res\layout\activity_main.xml
Error:(22) No resource identifier found for attribute 'menu' in package 'ranjithnair02.com.supporttest'
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\IBM_ADMIN\Documents\android-studio\sdk\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1
Information:BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

我在menu/drawer.xml中添加了菜单项.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <group android:checkableBehavior="single">

        <item
            android:id="@+id/navigation_item_1"
            android:checked="true"
            android:icon="@drawable/abc_tab_indicator_mtrl_alpha"
            android:title="First" />

        <item
            android:id="@+id/navigation_item_2" …
Run Code Online (Sandbox Code Playgroud)

android drawerlayout material-design navigationview androiddesignsupport

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

动态更改导航视图项目颜色Android

我想建立一个导航抽屉,其中每个项目都有不同的选择颜色(图标色调和文本颜色),因为谷歌游戏商店有:

在此输入图像描述

我不确定他们是如何解决的,我认为他们使用不同的抽屉活动.我想使用片段,我想更改图标色调和文本颜色.我有什么想法可以做到这一点?我正在使用谷歌的设计支持库和带有导航视图的抽屉布局.

android drawerlayout navigationview androiddesignsupport

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