小编And*_*idP的帖子

以编程方式设置app:layout_behavior

我有一个带有recyclerview的协调器布局,我想以编程方式添加.它以编程方式添加的原因是因为不同的片段会使协调器布局膨胀,可能会使用不同类型的Recyclerviews.

通常对于recyclerview,为了设置此行为,我会将其添加到xml中:

app:layout_behavior="@string/appbar_scrolling_view_behavior"
Run Code Online (Sandbox Code Playgroud)

这很好.但是,当我以编程方式创建recyclerviews然后将它们添加到framelayout时,我完全不知道如何添加此行为:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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:id="@+id/coordLayout"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout android:id="@+id/app_bar"
        android:fitsSystemWindows="true" android:layout_height="@dimen/app_bar_height"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout"
            android:fitsSystemWindows="true" android:layout_width="match_parent"
            android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="?attr/colorPrimary">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

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

    </android.support.design.widget.AppBarLayout>
    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </FrameLayout>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments material-design android-recyclerview

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

在支持库版本更改时无法解析符号

我希望有人可以对这个问题有所了解.我正在尝试更改支持库版本:

compile 'com.android.support:support-annotations:23.1.0'
compile 'com.android.support:support-v4:23.1.0'
compile 'com.android.support:support-v13:23.1.0'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
Run Code Online (Sandbox Code Playgroud)

compile 'com.android.support:support-annotations:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:support-v13:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
Run Code Online (Sandbox Code Playgroud)

通常看起来像一个简单的小升级已经让我整整一天.基本上在更新gradle.build文件时,我同步 - >清理,并且在IDE上出现了一堆无法解析符号错误,用于支持库中的类.

更有趣的是,如果我尝试通过adb在我的手机上运行代码,尽管AS显示为"无法解析符号",它在我的手机上运行完全正常.

在我试过的事情中:

  1. 清洁/重建
  2. 无效缓存/重启
  3. 删除所有.iml文件和.idea文件夹
  4. 重新安装Android Studio,重新导入项目
  5. 重新启动

进一步深入到构建目录中,它们在两者中都是相似的

建立\中间体\分解-AAR\com.android.support \程序兼容性-V7\23.1.0 \罐\ classes.jar

建立\中间体\分解-AAR\com.android.support \程序兼容性-V7\23.1.1 \罐\ classes.jar

分别是生成的.不同的是,在AS中,对于以前的版本,"classes.jar"可以在AS中打开,与新版本一样,它们不能在AS中打开.

我觉得我已经筋疲力尽了所有可用的选项,所以如果有人能说明如何解决这个问题,我会非常感激.

我的完整gradle.build文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.XXX"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-studio

9
推荐指数
1
解决办法
7631
查看次数

SlidingTabLayout backgroundcolor

我正在尝试更改(https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html)中描述的SlidingTabLayout的选项卡背景颜色.

我设法让整个事情发挥作用.但是当我更改第183行的tabresource颜色时,例如:

 textView.setBackgroundResource(R.color.white);
Run Code Online (Sandbox Code Playgroud)

选项卡的背景变为白色,但指示器根本不显示.

有人可以建议如何只是改变背景颜色,但让指标像往常一样工作吗?

谢谢.

tabs android android-resources

3
推荐指数
1
解决办法
2856
查看次数

Android RecyclerView notifyItemRangeChanged与notifyItemChanged

我有一个数据集,可能会在刷新时发生变化.确定现有数据集中的哪些条目已更改是非常不可预测的.我通读了recyclerview适配器描述和我遇到的主要问题.

是否更有效地确定哪些数据视图已更改,然后对受影响的范围使用notifyItemRangeChanged,还是应该在每次更改数据视图后逐个更改它们然后再更改notifyItemChanged?

它稍微复杂一点,因为根据改变的内容,每个视图的顺序可能已经改变,那么它是为受影响的范围调用notifyItemRangeInserted,notifyItemRangeRemoved或逐个调用notifyItemMoved的参数?

这种方式或其他方式更有效率吗?

谢谢

performance android android-animation android-recyclerview

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