5

मैंने हाल ही में समन्वयक लेआउट के साथ समस्या में उछाल लिया है। जब मैं this उदाहरण के रूप में सरल ढहने वाले टूलबार लेआउट को बनाने का प्रयास करता हूं, तो नीचे दिए गए स्क्रीनशॉट में टूलबार एपर्स स्टेटस बार के अंतर्गत होने के लिए (प्रीलोपिप डिवाइस पर सब कुछ ठीक काम करता है, क्योंकि ऐप स्टेटसबार के अंतर्गत नहीं आता है)। मेरे गतिविधि लेआउट केटूलबार को संकुचित करना - स्टेटसबार के तहत टूलबार

toolbar under statusbar (see back arrow)

कोड स्निपेट:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsingToolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/imageCalculationDetail" 
       android:layout_width="match_parent" 
       android:layout_height="200dp" 
       android:background="@drawable/ic_dummy_calculation" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/transparent" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/scroll" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 
     android:clipToPadding="false" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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

    </android.support.v4.widget.NestedScrollView> 

</android.support.design.widget.CoordinatorLayout> 

मेरे शैलियाँ (केवल V21) जहां BaseAppTheme माता पिता Theme.AppCompat.Light.NoActionBar है:

<style name="AppTheme" parent="BaseAppTheme"> 
     <item name="android:windowTranslucentStatus">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="android:colorAccent">@color/colorPrimary</item> 
     <item name="android:colorButtonNormal">@color/button_state_list</item> 
     <item name="android:statusBarColor">@color/transparent</item> 
    </style> 
+0

अपनी शैलियों.एक्सएमएल फ़ाइल पोस्ट करें। –

+0

मैंने प्रश्न में शैली जोड़ा है –

+0

आपकी मेनिफेस्ट फ़ाइल के बारे में क्या? क्या आपने वहां सही शैली निर्दिष्ट की है? वह भी पोस्ट करें। क्योंकि मैंने लॉलीपॉप एमुलेटर पर एक ही लेआउट और सबकुछ ठीक से करने की कोशिश की। –

उत्तर

-1

एक लागू करें लॉलीपॉप डिवाइस या ऊपर के लिए टूलबार पर मार्जिन टॉप करने के लिए ब्रेकपॉइंट।

मूल्यों/dimens.xml

<dimen name="toolbar_margin_top">0dp</dimen> 

मान-V21/dimens.xml

<dimen name="toolbar_margin_top">24dp</dimen> 

एक तो अपने लेआउट में:

<android.support.v7.widget.Toolbar 
    ..... 
    android:layout_marginTop="@dimen/toolbar_margin_top" 
+0

है यह एक कामकाज की तरह लगता है, मैं कुछ साफ समाधान की तरह woud, [उदाहरण] में कोई शीर्ष मार्जिन नहीं है (http://antonioleiva.com/ ढहने-टूलबार-लेआउट /) –

+0

यदि आप पारदर्शी स्टेटस बार चाहते हैं, तो इसे ठीक करने का यही एकमात्र तरीका है। अन्यथा, आपको एंड्रॉइड को अक्षम करने की आवश्यकता है: windowDrawsSystemBarBackgrounds आपकी शैलियों में संपत्ति: झूठी

0
<item name="android:windowDrawsSystemBarBackgrounds">true</item> 

में इस डाल करके आपकी शैलियों आप एंड्रॉइड को बता रहे हैं कि आपका ऐप ज़िम्मेदार है सिस्टम बार के पीछे सामान ड्राइंग। यही कारण है कि अगर यह ध्वज सेट किया गया है तो दूसरे जवाब में "गंदे हैक" तकनीकी रूप से सही है।

जब तक आपके पास ध्वज सत्य होने का स्पष्ट कारण नहीं है (मुझे संदेह नहीं है), इसे गलत पर सेट करें ताकि ओएस आपके लिए आपकी सामग्री को सही तरीके से ऑफ़सेट कर सके। आपकी स्टेटस बार अभी भी पारदर्शी होनी चाहिए।

+0

इस मान को गलत पर सेट करने से कोई फर्क नहीं पड़ता –

0

कोशिश imageView से android:fitsSystemWindows="true" को हटाने के द्वारा ..

<ImageView 
      android:id="@+id/imageCalculationDetail" 
      android:layout_width="match_parent" 
      android:layout_height="200dp" 
      android:background="@drawable/ic_dummy_calculation" 
      android:scaleType="centerCrop" 
      app:layout_collapseMode="parallax"/> 
+0

इस ध्वज को हटाने के बाद, टूलबार स्टेटस बार के अंतर्गत है , लेकिन स्टेटसबार पारदर्शी होने से रोकता है और पूरे ढहने वाले टूलबार को छोड़ा जाता है, यह वांछित प्रभाव नहीं है –

+0

क्या आप स्क्रीनशॉट पोस्ट करेंगे? –

5

खैर मैं यह पता लगा, समस्या यह है कि मैं BaseAppTheme की मेरी toolbarStyle में

<item name="android:fitsSystemWindows">true</item> 

था (अन्य actvities के लिए, सब कुछ अच्छी तरह से काम , पारदर्शी स्टेटस बार के साथ टूलबार को ध्वस्त करने के लिए नहीं)।

android:fitsSystemWindows="false" 

मेरे टूलबार में सेट करने के बाद, सब कुछ ठीक काम करता है।

0

मुझे

एक्सएमएल में उपकरण पट्टी में एक गुण fitSystemWindows = "false" जोड़ने के लिए काम किया।

<android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:fitsSystemWindows="false" 
       app:popupTheme="@style/AppTheme.PopupOverlay" 
       app:layout_collapseMode="pin"/> 
संबंधित मुद्दे