- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试修改我的应用程序以在用户滚动时隐藏我的 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 {
.
.
.
}
mainactivity_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/
我正在尝试在新的 L API 中使用 setHideOnContentScrollEnabled 和 setHideOffset。但是,提到的功能似乎都没有任何效果。还有其他人遇到同样的问题吗? 我的
我正在尝试修改我的应用程序以在用户滚动时隐藏我的 ActionBar。目前,我们不关心在 Lollipop 之前的设备上支持此功能,但代码主要集中在 Lollipop 之前的设备上,并已根据需要慢慢修
我是一名优秀的程序员,十分优秀!