底板不适用于Kitkat(预棒棒糖装置)

时间:2016-03-18 08:00:16

标签: android android-studio material-design android-support-library androiddesignsupport

您好我可以在Android 5.0上运行底页,但不能在kitkat上运行。

已编辑 奇怪的是,当我预先看到最近的应用并再次打开应用时,它会开始工作吗?没有头绪O.o 这是我的build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {

        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
..}

View mBottomSheet = view.findViewById(R.id.location_bottom_sheet);
BottomSheetBehavior        mBehavior = BottomSheetBehavior.from(mBottomSheet);

        mBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
            @Override
            public void onStateChanged(@NonNull View bottomSheet, int newState) {

            }

            @Override
            public void onSlide(@NonNull View bottomSheet, float slideOffset) {

            }
        });

点击我这样做

final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
                mBottomSheet.setVisibility(View.VISIBLE);
                handler.removeCallbacks(this);
            }
        }, 500);

仍然没有工作anyboyd有任何想法为什么会发生这种情况。

2 个答案:

答案 0 :(得分:0)

我在23.0.2中遇到与KitKat和BottomSheet完全相同的问题。 在我的情况下,它是由活动的xml中的标签顺序引起的。 我在地图之前放置了BottomSheet,在这种情况下,BottomSheet与KitKat上的地图重叠(但不是在Android 5上)。所以要解决你应该做的问题,例如:

 <FrameLayout
        android:id="@+id/frameMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
...

 <android.support.v4.widget.NestedScrollView
        android:id="@+id/bottomSheet>
...

反之亦然。希望我足够具体:)

答案 1 :(得分:0)

这是谷歌开发人员所讨论的已知问题 在一些Pre-lollipop设备上,底页不起作用

我在R&amp; D之后找到了一天的解决方案。 试试这个

  ViewCompat.postOnAnimation(yourCoordinator, new Runnable() {
            @Override
            public void run() {
                ViewCompat.postInvalidateOnAnimation(yourCoordinator);
            }
        });

初始化视图后放置此代码