小编raz*_*zle的帖子

如何重置CoordinatorLayout控制的工具栏位置?

我正在开发的应用程序包含一个在Activity中实现的导航抽屉.活动布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <include
            android:id="@+id/appbar"
            layout="@layout/appbar" />

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/header_drawer"
        app:menu="@menu/menu_nav">
    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是一种非常常见的模式,只有经常更改的是容器布局中的Fragment.

如果任何片段具有滚动元素,则在滚动时,CoordinatorLayout将很乐意进行位置转换,包括工具栏/ AppBarLayout.

这里真正的问题是,当Fragment被替换时,工具栏的位置保持不变,即,如果隐藏工具栏,它将保持不变.

结果如下:

这个:

滚动后

卡住:

然后改变

如何在这种情况下重置工具栏位置?

编辑: 可能是一个错误,只有在重新启动应用程序时才会调用AppBarLayout偏移更改侦听器(按下后退按钮并打开应用程序),并在激烈的投掷后停止再次调用.

android navigation-drawer android-design-library androiddesignsupport

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

除了ImageView和srcCompat之外,如何使用带有View的矢量drawable?

app:srcCompatImageView允许向后兼容使用载体可绘的.但是,你怎么能与其他使用它们View小号之外ImageView?例如,TextView属性就像android:drawableLeft.

同时使用矢量drawable作为android:iconwith MenuItem导致崩溃,但有以下异常:

Fatal Exception: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
   at android.view.LayoutInflater.createView(LayoutInflater.java:626)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:470)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
   at android.support.v7.view.menu.MenuItemImpl.setActionView(MenuItemImpl.java:621)
   at android.support.v7.view.menu.MenuItemImpl.setActionView(MenuItemImpl.java:40)
   at android.support.v4.view.MenuItemCompat.setActionView(MenuItemCompat.java:310)
   at android.support.v7.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:465)
   at android.support.v7.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:479)
   at android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:196)
   at android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:118)
   at com.example.niceapp.context.main.MainActivity.onCreateOptionsMenu(MainActivity.java:101)
   at android.app.Activity.onCreatePanelMenu(Activity.java:2578)
Run Code Online (Sandbox Code Playgroud)

使用支持库23.2.0,如何解决此问题?

android android-support-library android-vectordrawable

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

是否可以在Dagger 2中有选择地为组件设置模块?

Caused by: java.lang.IllegalStateException: analyticsModule must be set

我正在构建一个使用模板样式初始化的库.用户可以使用该库有选择地为项目设置模块.它使用Dagger 2进行DI.

但是Dagger 2似乎不允许使用可选模块.不能简单地忽略未设置的模块?

java android dependency-injection dagger-2

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

Android懒惰数据绑定可能吗?

Android数据绑定支持最酷的功能之一是它还为View设置了ID字段.这样可以整理代码库,因为不需要字段或findViewById()调用.

但问题是绑定实例只能通过bind()调用来检索,该调用往往会调度绑定.当异步接收数据并且通常NullPointerException抛出数据时,这是不好的.

可以检索带有View字段的绑定实例减去实际的数据绑定过程吗?

堆栈跟踪:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
         at com.app.android.databinding.ActivityRestaurantDetailsBinding.executeBindings(ActivityRestaurantDetailsBinding.java:381)
         at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:350)
         at android.databinding.ViewDataBinding$6.run(ViewDataBinding.java:167)
         at android.databinding.ViewDataBinding$5.onViewAttachedToWindow(ViewDataBinding.java:137)
         at android.view.View.dispatchAttachedToWindow(View.java:14525)
Run Code Online (Sandbox Code Playgroud)

android lazy-initialization android-databinding

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