我有一些内容NestedScrollView没有显示出来.唯一可以显示的是内容AppBarLayout.但是,当我用NestedScrollView包含a的片段替换RecyclerView它时,它会按预期显示.我似乎无法弄清楚我在这里做错了什么.
编辑:我刚刚测试过,如果我删除了AppBarLayout整个和app:layout_behavior="@string/appbar_scrolling_view_behavior"属性NestedScrollView,Android Studio中的预览窗格确实显示我的滚动内容.
<android.support.design.widget.CoordinatorLayout
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:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<!-- Extended toolbar -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="72dp">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapSentences|textMultiLine"
android:hint="Name"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible">
<!-- Scrolling content here -->
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud) 我为 Android 创建了一个库,它本身依赖于appcompat和design支持库。我通过在我的图书馆中放置一个虚拟资源将我图书馆的所有资源标记为私有Public.xml:
<public name="string_res_that_does_not_exist" type="string"/>
Run Code Online (Sandbox Code Playgroud)
当我将我的库导入另一个项目时,Android Studio 会在使用appcompat和design库中的公共资源的行中生成警告,例如:
?colorPrimary?colorPrimaryDark?colorAccent?selectableItemBackground警告说The resource @attr/<resource-name> is marked as private in <my-library-name>。
这个问题似乎与我的问题有关:https : //code.google.com/p/android/issues/detail?id=183120
这里的根本原因是,当一个库依赖另一个库时,它会将其依赖的任何库中的所有资源导入到自己声明的 R.txt(在 AAR 文件中)中。但是,它不包括来自这些依赖项的 public.txt 声明,因此现在它最终将这些符号公开为已声明但不是公共的——例如私有的。
如何防止显示这些警告,以便我图书馆的其他用户不会遇到这些问题?