gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:27 25 4
gpt4 key购买 nike

我正在尝试修改我的应用程序以在用户滚动时隐藏我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com