13

मैं खोज बॉक्स को फिर से बनाने की कोशिश कर रहा हूं क्योंकि यह एयरबिन एंड्रॉइड ऐप में है। तो मैं का उपयोग कर रहा हूं CoorinatorLayoutटूलबार और पुनर्चक्रण देखेंकोऑर्डिनेटर के अंदर रिलेवेटलाइट को कैसे रखें

लेकिन जब मैं समन्वयक के अंदर कुछ दो चीजों के अलावा कुछ डालता हूं, तो यह दिखाई नहीं देता है।

<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/slidingLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/red" 
     app:layout_scrollFlags="scroll|enterAlways" /> 

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

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="50dp" 
    android:layout_marginRight="50dp" 
    android:layout_marginTop="20dp" 
    android:background="@drawable/rounded_background" 
    android:orientation="horizontal" 
    android:padding="6dp" 
    app:layout_scrollFlags="scroll|enterAlways"> 

    <EditText 
     android:id="@+id/search" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="6" 
     android:background="@null" 
     android:fontFamily="sans-serif-light" 
     android:hint="Unesite grad" 
     android:paddingLeft="16dp" 
     android:paddingStart="16dp" /> 

    <ImageView 
     android:id="@+id/cancelSearch" 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:padding="10dp" 
     android:src="@drawable/ic_cancel" /> 
</LinearLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recyclerView" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/appbar" 
    android:background="#ffffff" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

लेकिन असल में अगर यह भी काम किया, मैं RecyclerView ऊपर खोज बॉक्स डालने की मुसीबत होगा: यहाँ मेरी कोड है।

मैंने सबकुछ रिलेवेटलाइट के अंदर रखने की कोशिश की है लेकिन यह काम नहीं करता है।

यहाँ भी मैं क्या करने की कोशिश कर रहा हूँ की तस्वीर है enter image description here

संपादित करें:

यहाँ RelativeLayout साथ कोड

<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/slidingLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/appbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      android:background="#00000000"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/red" 
       app:layout_scrollFlags="scroll|enterAlways"/> 
    </android.support.design.widget.AppBarLayout> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="50dp" 
    android:layout_marginRight="50dp" 
    android:layout_marginTop="20dp" 
    android:background="@drawable/rounded_background" 
    android:orientation="horizontal" 
    android:padding="6dp" 
    app:layout_scrollFlags="scroll|enterAlways"> 

    <EditText 
     android:id="@+id/search" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="6" 
     android:background="@null" 
     android:fontFamily="sans-serif-light" 
     android:hint="Unesite grad" 
     android:paddingLeft="16dp" 
     android:paddingStart="16dp" /> 

    <ImageView 
     android:id="@+id/cancelSearch" 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:padding="10dp" 
     android:src="@drawable/ic_cancel" /> 
</LinearLayout> 
     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recyclerView" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@id/appbar" 
      android:background="#ffffff" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
    </RelativeLayout> 

+0

कोड कहां है जहां आपने 'कोऑर्डिनेटरलाउट 'में' रिलेवेटिवआउट 'डालने का प्रयास किया था? –

+0

मैंने इसे 2 तरीकों से आजमाया। सबसे पहले मैं कोऑर्डिनेटरलेआउट के अंदर सभी विचारों को लपेट रहा था, इसलिए सापेक्ष पहला और एकमात्र बच्चा था। इसके परिणामस्वरूप सभी तत्वों पर स्क्रॉल व्यवहार खोना पड़ा। और दूसरा EDIT में है, जहां मैंने रिसाइक्लर व्यू और सापेक्ष के अंदर यह खोज बॉक्स लपेट लिया। –

+0

@ निकोला मिलिटिनोविच स्क्रॉल व्यवहार उन सभी बच्चों के लिए काम करेगा जो 'कोऑर्डिनेटरलाउट' के प्रत्यक्ष बच्चे हैं, इसलिए यदि आप 'रिलेवेटिवआउट' नेस्टेड स्क्रॉलिंग में लेआउट व्यवहार सेट करेंगे तो काम करेगा। –

उत्तर

21

मैं कोशिश कर रहा था है कुछ ऐसा करने के लिए, लेकिन स्क्रीन के नीचे एक विज्ञापन बैनर के साथ। मेरे समाधान CoordinatorLayout के रूप में तो बाहर RelativeLayout रैप करने के लिए किया गया था:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/ad_view"> 

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

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/my_list_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

    <com.google.android.gms.ads.AdView 
     android:id="@+id/ad_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     android:layout_gravity="center|bottom" 
     app:adSize="SMART_BANNER" 
     app:adUnitId="@string/admob_id" /> 

</RelativeLayout> 

उपकरण पट्टी ठीक से छुपाता है जब RecyclerView अंदर स्क्रॉल और सब कुछ ठीक काम कर रहा है। मैं कल्पना करूंगा कि यदि आप एक समान सिद्धांत का पालन करते हैं तो आपको अच्छी तरह से जाना चाहिए।

+0

बिल्कुल वही जो मुझे चाहिए (खोज के घंटों के बाद!)। धन्यवाद। – sidiabale

0

आप स्थिति पट्टी सफेद रंग को दूर चाहते हैं, आप में v21/styles.xml

उदाहरण के लिए धन्यवाद अगली पंक्ति

<item name="android:statusBarColor">@android:color/transparent</item>` 

निकालना होगा।

0
<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/slidingLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="@color/red" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="50dp" 
      android:layout_marginRight="50dp" 
      android:layout_marginTop="20dp" 
      android:background="@drawable/rounded_background" 
      android:orientation="horizontal" 
      android:padding="6dp" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <EditText 
       android:id="@+id/search" 
       android:layout_width="0dp" 
       android:layout_height="fill_parent" 
       android:layout_weight="6" 
       android:background="@null" 
       android:fontFamily="sans-serif-light" 
       android:hint="Unesite grad" 
       android:paddingLeft="16dp" 
       android:paddingStart="16dp"/> 

      <ImageView 
       android:id="@+id/cancelSearch" 
       android:layout_width="0dp" 
       android:layout_height="40dp" 
       android:layout_weight="1" 
       android:padding="10dp" 
       android:src="@drawable/ic_cancel" /> 
     </LinearLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/appbar" 
     android:background="#ffffff" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
</android.support.design.widget.CoordinatorLayout> 

जांचें कि यह आपके लिए काम करता है या नहीं।

संबंधित मुद्दे