Giter VIP home page Giter VIP logo

statusbarcompat's People

Contributors

dsiner avatar niorgai avatar ravidsrk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

statusbarcompat's Issues

设置透明状态栏会让状态栏文字颜色变为白色

在 Style 文件中设置 <item name="android:windowLightStatusBar">true</item> ,然后在 Activity 中使用本库提供的方法设置状态栏透明。会导致状态栏文字并不能显示为黑色,任然显示为修改前的白色

sAnimator leaks window

LeakCanary reports sAnimator leaking window in startColorAnimation. This could probably be fixed by using a WeakReference to access window or by cancelling the Animator when the corresponding activity is being destroyed.

https://pastebin.com/dAukjhMH

状态栏下有黑线

miui 5.1和CM 6.0下都测试过..
Activity

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        StatusBarCompat.setStatusBarColor(this,getResources().getColor(R.color.colorPrimary2));
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="ThinkCool" />
</LinearLayout>

mytopbar_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary2"
    android:gravity="center"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/top_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/back" />

    <TextView
        android:id="@+id/top_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:text="登陆"
        android:textSize="16sp" />

    <ImageView
        android:id="@+id/top_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/add" />
</LinearLayout>

Image

5.1 系统, setStatusBarColorForCollapsingToolbar 会撑上去状态栏

bug:CollapsingFragment 在 5.1 系统中,布局会撑上去状态栏,4.4 就没问题的。
经过测试,发现以下 2 个方法,都可以解决:
1、在 MainActivity 的根布局加上 android:fitsSystemWindows="true" 可以修复这个问题;
2、不改动代码,只将项目中的兼容库版本 supportVersion : "24.2.1" ,升级为最新的 25.1.0 ,也修复了。

statusBar 无法显示阴影

运行示例代码,小米 4 MIUI 8.7.10.26 在 Translucent 界面点击 Toogle 按钮后顶部状态栏没有任何变化。
朋友的小米手机也有同样的问题,机型系统未知。

Toolbar goes underneath status bar

I have a problem when using the translucent status bar inside a fragment.

What happens is that the toolbar (its title, icons and layout) goes underneath the status bar. The theme of the app is the following:

 <style name="OneManStudioTheme" parent="BaseTheme">
    </style>

    <!-- base app theme -->
    <style name="BaseTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
        <item name="colorPrimary">@color/blue_picton</item>
        <item name="colorPrimaryDark">@color/blue_cerulean</item>
        <item name="colorAccent">@color/pink_hot</item>
    </style>

I have also tried with

 <item name="windowActionBar">false</item>
 <item name="windowNoTitle">true</item>

inside the OneManStudioTheme but it has no effect :(

Any ideas what might be wrong?
Have you tested your library with the new Theme.MaterialComponents.Light.NoActionBar family of themes?

Any help would be greatly appreciated :)

状态栏 5.0异常

加了 StatusBarCompat.translucentStatusBar(activity) 之后,在4.4+完美显示,但是在5.0上状态栏是灰色的,不是黑色的,也不是透明的 布局使用了
CoordinatorLayout
AppBarLayout
CollapsingToolbarLayout
Toolbar

Remove app_name label from manifest

> Manifest merger failed : Attribute application@label value=(@string/label_application) from AndroidManifest.xml:16:7-48
  	is also present at [com.github.niorgai:StatusBarCompat:2.1.3] AndroidManifest.xml:13:9-41 value=(@string/app_name).
  	Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:6:3-8:37 to override.```

引用失败

lib的minSdk是15,我的项目minSdk是14,我的版本不能提高,要如何处理啊?

testin测试发生多次崩溃异常java.lang.NullPointerException

异常日志:
06-17 19:42:08.612 E/AndroidRuntime(18651): Process: com.yanshiv8.huosuapp, PID: 18651 06-17 19:42:08.612 E/AndroidRuntime(18651): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yanshiv8.huosuapp/com.etsdk.game.ui.game.details.NewGameDetailsActivity}: java.lang.NullPointerException 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread.access$800(ActivityThread.java:166) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.os.Handler.dispatchMessage(Handler.java:102) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.os.Looper.loop(Looper.java:136) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread.main(ActivityThread.java:5584) 06-17 19:42:08.612 E/AndroidRuntime(18651): at java.lang.reflect.Method.invokeNative(Native Method) 06-17 19:42:08.612 E/AndroidRuntime(18651): at java.lang.reflect.Method.invoke(Method.java:515) 06-17 19:42:08.612 E/AndroidRuntime(18651): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 06-17 19:42:08.612 E/AndroidRuntime(18651): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 06-17 19:42:08.612 E/AndroidRuntime(18651): at dalvik.system.NativeStart.main(Native Method) 06-17 19:42:08.612 E/AndroidRuntime(18651): Caused by: java.lang.NullPointerException 06-17 19:42:08.612 E/AndroidRuntime(18651): at qiu.niorgai.StatusBarCompatKitKat.translucentStatusBar(StatusBarCompatKitKat.java:142) 06-17 19:42:08.612 E/AndroidRuntime(18651): at qiu.niorgai.StatusBarCompat.translucentStatusBar(StatusBarCompat.java:58) 06-17 19:42:08.612 E/AndroidRuntime(18651): at com.etsdk.game.base.BaseActivity.setContentView(BaseActivity.java:191) 06-17 19:42:08.612 E/AndroidRuntime(18651): at com.etsdk.game.ui.game.details.NewGameDetailsActivity.onCreate(NewGameDetailsActivity.java:98) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.Activity.performCreate(Activity.java:5442) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 06-17 19:42:08.612 E/AndroidRuntime(18651): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393) 06-17 19:42:08.612 E/AndroidRuntime(18651): ... 11 more

这上面的报错的行数不对,我查看了下smali文件,报错代码:

image

具体对应代码
static void translucentStatusBar(Activity activity) { Window window = activity.getWindow(); window.addFlags(67108864); ViewGroup mContentView = (ViewGroup)activity.findViewById(16908290); //此处mContentView可能为null,导致崩溃 View mContentChild = mContentView.getChildAt(0); removeFakeStatusBarViewIfExist(activity); removeMarginTopOfContentChild(mContentChild, getStatusBarHeight(activity)); if (mContentChild != null) { ViewCompat.setFitsSystemWindows(mContentChild, false); } }

状态栏变成白色

调用translucentStatusBar(Activity activity, boolean hideStatusBarBackground),后面的参数传true,在api
21上面,状态栏变成白色

collapsingToolbar状态栏颜色混乱

collapsingToolbar 如果快速话动几次,状态栏的颜色就乱了,展开的时候状态变成了黄颜色, 折叠后状态栏变成和toolbar一样的蓝色

清单文件中的application属性冲突

能不能把清单文件中的application的两个属性android:allowBackup="true"和android:supportsRtl="true"去掉,与我项目中的合并冲突了。
Error: Attribute application@allowBackup value=(false) from AndroidManifest.xml:20:9-36 is also present at [com.github.niorgai:StatusBarCompat:2.1.4] AndroidManifest.xml:12:9-35 value=(true). Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:18:5-412:19 to override.

大佬有问题啊

StatusBarCompat.setStatusBarColorForCollapsingToolbar用这个方法的时候,会报
android.widget.FrameLayout$LayoutParams cannot be cast to android.support.design.widget.CollapsingToolbarLayout$LayoutParams 强制转换的错误,实在是不懂啊

混合调用的bug

实例这种同一个activity,不同的fragment,当在一个fragment A中调用:
@OverRide
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
StatusBarCompat.setStatusBarColorForCollapsingToolbar(getActivity(), mAppBarLayout, mCollapsingToolbarLayout, mToolbar, Color.TRANSPARENT);
}
}
然后在另一个fragment B中调用:
@OverRide
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
StatusBarCompat.setStatusBarColor(getActivity(), getActivity().getResources().getColor(R.color.primary));
}
}
当点击底部tab显示fragment A后再点击底部tab显示fragment B后,状态栏的颜色并不是primary而是透明的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.