小编Pao*_*olo的帖子

当RecyclerView适合屏幕时,不要折叠工具栏


我使用Android Design Library创建了一个应用程序,带有工具栏和TabLayout.
实际上有2个选项卡,都有2个RecyclerView,滚动时会自动折叠工具栏.

我的问题是:当RecyclerView具有少量项目并完全适合屏幕时(如TAB 2中),我可以禁用工具栏折叠吗?

我见过很多像CheeseSquare这样的例子,由Google员工制作,问题仍然存在:即使RecyclerView只有1个项目,工具栏仍然隐藏在滚动上.

在此输入图像描述

我想我可以找出是否在屏幕上显示RecyclerView的第一项,如果是,则禁用工具栏折叠.前者易于实现,后者又如何呢?

这是我的布局:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
            android:background="?attr/colorPrimary"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/glucosio_pink"
            app:tabSelectedTextColor="@android:color/white"
            app:tabIndicatorColor="@color/glucosio_accent"
            app:tabTextColor="#80ffffff"/>
        </android.support.design.widget.AppBarLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_fab"
        android:layout_margin="16dp"
        android:onClick="onFabClicked"
        app:backgroundTint="@color/glucosio_accent"
        android:src="@drawable/ic_add_black_24dp"
        android:layout_gravity="bottom|right"
        />
    </android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)




android toolbar android-appcompat android-recyclerview android-design-library

34
推荐指数
4
解决办法
1万
查看次数

无法使用gradle 4.1构建项目:"未知元素*已找到"

更新到Gradle 4.1后,我无法构建我的项目(一切正常,与以前的版本一样).

基本上它不再识别AndroidManifest标签,并在生成的清单中给我错误/build/intermediates/manifests/full/debug.

这是构建日志:

/home/paolorotolo/dev/exp/***/build/intermediates/manifests/full/debug/AndroidManifest.xml
    Error:(30) unknown element <action> found
    Error:(32) unknown element <category> found
    Error:(33) unknown element <category> found
    Error:/home/paolorotolo/dev/exp/core/***/build/intermediates/manifests/full/debug/AndroidManifest.xml:30 unknown element <action> found
    Error:/home/paolorotolo/dev/exp/core/***/build/intermediates/manifests/full/debug/AndroidManifest.xml:33 unknown element <category> found
    Error:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
    Error:com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
    Error:Execution failed for task ':***:processDebugResources'.
    > Failed to execute aapt
    Information:BUILD FAILED in 6s
Run Code Online (Sandbox Code Playgroud)

android gradle

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

在库中使用外部google-services.json文件

我在我的应用程序中共享一个登录模块,其中一个 LoginActivity处理Facebook和Google身份验证(逻辑+ UI).
现在,通过Facebook,可以轻松地为每个应用指定不同的ID,覆盖facebook_app_id应用模块中的库字符串.

我没有找到与Google登录相同的方法,因为它需要一个google-services.json文件.实际上,如果我将文件包含在应用程序模块中而不是登录库中,则构建将失败.

错误:任务':core:processReleaseGoogleServices'的执行失败.
文件google-services.json丢失了.没有它,Google Services插件无法运行.

错误是不言自明的,我需要 google-services.json在登录模块中.关键是其他应用程序也有自己的google-services.json.

有没有办法可以google-services.json在Login模块中添加一个虚拟对象,然后在真实的应用程序中覆盖它?

android google-authentication google-play-services android-gradle-plugin google-signin

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