私は新しいAndroidこの例に基づいた設計ライブラリ chrisbanes/cheesesquare githubおよび here を使用しています
この例を実行しましたが、CheeseDetailActivity内のツールバーに問題があります。ツールバーは表示されるべきではありません。以下の画像をご覧ください。
最初の画像では、ツールバーが正しく表示されていないことがわかります。
2番目の画像では、ツールバーは正しく表示されていますが、通知バーは白であることがわかります。これは、actiivty_detail.xmlからAndroid:fitsSystemWindows="true"
をAndroid.support.design.widget.CoordinatorLayout
から削除したために発生します
fitsSystemWindows
は真である必要があり、問題はAndroid.support.design.widget.AppBarLayout
に関連していると思いますが、この問題を解決する方法がわかりません。 marginTop
と同じ高さのnotificationBar
を試しましたが、うまくいきませんでした。
どんな提案も大歓迎です:)
これはactivity_detail.xml
の一部です:
<Android.support.design.widget.CoordinatorLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/main_content"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true">
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appbar"
Android:layout_width="match_parent"
Android:layout_height="@dimen/detail_backdrop_height"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Android:fitsSystemWindows="true">
<Android.support.design.widget.CollapsingToolbarLayout
Android:id="@+id/collapsing_toolbar"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
Android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp">
<ImageView
Android:id="@+id/backdrop"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scaleType="centerCrop"
Android:fitsSystemWindows="true"
app:layout_collapseMode="parallax" />
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin" />
</Android.support.design.widget.CollapsingToolbarLayout>
</Android.support.design.widget.AppBarLayout>
次のように、appフォルダー内のDesign Libraryを新しいバージョンbuild.gradleファイルで変更します。
'com.Android.support:design:22.2.1'をコンパイルします
私は次のような出力を得ました:
それはあなたを助けます。
ありがとう:)
これはcom.Android.support:design:22.2.0
のバグのようです。これは修正され、将来のリリースとしてマークされます。だから、それがすぐに来ることを願っています。問題のあるリンク: https://code.google.com/p/Android/issues/detail?id=17524 および https://code.google.com/p/Android/issues/detail?id = 175069
windowActionBarとwindowNoTitleで同じ問題をスタイルに入れて、私の問題を決定しました。
<style name="AppTheme.base" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
同じ問題があり、ツールバーが21を超えるAPIレベルで間違って表示されていました。supportActionBar()としてAndroid.support.v7.widget.Toolbarを使用していました。以下のコンテンツは断片的です。写真を参照してください: アプリケーションの開始時に、ツールバーが間違って表示されている および Android.support.design.widget.CollapsingToolbarLayoutを折りたたむと、画像が完全に非表示にならない
ツールバーが配置されているビューのルート要素にAndroid:fitsSystemWindows = "true"属性を追加すると、これを解決しました。
API 21の回避策を次に示します。
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Lollipop) {
marginResult = 0;
int resourceId = getResources().getIdentifier(getString(R.string.identifier_status_bar_height), getString(R.string.identifier_dimen), getString(R.string.identifier_Android));
if (resourceId > 0) {
marginResult = getResources().getDimensionPixelSize(resourceId)*2;
}
CollapsingToolbarLayout.LayoutParams params = (CollapsingToolbarLayout.LayoutParams) mToolbar.getLayoutParams();
params.topMargin -= marginResult;
mToolbar.setLayoutParams(params);}