java - setHideOnContentScrollEnabled 不适用于目标 API 21+ 设备

标签 java android

我正在尝试修改我的应用程序以在用户滚动时隐藏我的 ActionBar。目前,我们不关心在 Lollipop 之前的设备上支持此功能,但代码主要集中在 Lollipop 之前的设备上,并已根据需要慢慢修改以适应 API 21+。

我正在使用 setHideOnContentScrollEnabled(true) 尝试在滚动时隐藏,然后设置 hideoffset,但我所做的一切似乎都不起作用。我的 fragment 进入如下所示的 Main 基本 Activity 布局中的 RecyclerView。

我还有一个 ModuleActivity,它扩展 MainActivity 并导入 android.app.ActionBar。我想知道问题是否可能与支持库有关,但我想如果是这样的话它会标记。

主要 Activity

 import android.content.Context;
import android.content.Intent;
import android.content.res.Resources.NotFoundException;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewTreeObserver;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;

public abstract class MainActivity extends FragmentActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  .
  .
  .
   if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
    }
    if (getContentResourceID() != 0) {
        setContentView(getContentResourceID());
    }

    @Override
    public void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    mProgressIndicator = (SimpleAssetImageView) findViewById(R.id.progressIndicator);
    if (getActionBar() == null) {
        return;
    }
    getActionBar().setDisplayHomeAsUpEnabled(true);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getActionBar().setHideOnContentScrollEnabled(true);
        getActionBar().setHideOffset(1);
    }

}

ModuleActivity.java

...
import android.app.ActionBar;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
...

public abstract class ModuleActivity extends MainActivity {


   .
   .
   .
   }

ma​​inactivity_baselayout.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout    xmlns:android="http://schemas.android.com/apk/res/android"
                                    android:id="@+id/drawerLayout"
                                    android:layout_width="match_parent"
                                    android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<include layout="@layout/default_drawer_menu_view"/>

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

build.gradle

dependencies {

        compile "com.android.support:support-v4:22.0.0"
        compile "com.facebook.android:facebook-android-sdk:3.19.0"
        compile "com.android.support:cardview-v7:22.0.0"
        compile "com.android.support:recyclerview-v7:22.0.0"
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.google.android.gms:play-services-maps:6.5.87'
        compile 'com.google.android.gms:play-services-location:6.5.87'
        compile 'com.google.android.gms:play-services-base:6.5.87'loader:1.9.4'
      }

最佳答案

我认为,如果您在 RecyclerView 的 XML 文件中将nestedScrollingEnabled 设置为 true,则代码将正常工作。

关于java - setHideOnContentScrollEnabled 不适用于目标 API 21+ 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832908/

相关文章:

java - 从java 8中的字符串列表生成自然id作为键和字符串作为值的映射

Java如何像Linux的命令 "du"一样获取文件的磁盘空间?

android - 如何在手机开机时在后台永久运行 android 应用程序?

更新SDK后Android项目无法构建

android - 使用 Google Play App Signing 将相同的 App-Signature-Certificate 与不同的应用程序一起使用

java - 检测到新的一天时调用方法

java - 在 Android 中创建自定义 ListView 时出现 UnsupportedOperationException

java - Android相机内存不足异常

java - 面板 setBackground 弄乱了 JLabels 的颜色

java - android.support.v7.preference.EditTextPreference 如何将键盘设置为数字