7

पर खुला संस्करण 23.4.0 से एंड्रॉयड डिजाइन समर्थन पुस्तकालय के संस्करण 24.2.1 का उपयोग करने जा BottomSheetBehavior मेरे लिए काम करना बंद कर के बाद में आता है। BottomSheet खुला के रूप में दिखाता है और setState(BottomSheetBehavior.STATE_COLLAPSED) पर कॉल करते समय बंद नहीं होता है। यह डिज़ाइन लाइब्रेरी के 23.4.0 पर नहीं होता है जहां BottomSheetBehaviour मेरे लिए अपेक्षित काम करता है।एंड्रॉयड डिजाइन समर्थन लाइब्रेरी 24.2.1 BottomSheet स्टार्टअप

क्या संस्करण 24 में कुछ भी बदलाव आया जिसके लिए BottomSheetBehavior का अलग-अलग उपयोग करना आवश्यक है? यहाँ

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button" 
     android:text="Open Bottom Sheet" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/close_button" 
     android:text="Close Bottom Sheet" 
     /> 

</LinearLayout> 
<LinearLayout 
    android:id="@+id/bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:orientation="horizontal" 
    android:background="@android:color/holo_green_light" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"/> 

और है कि मैं उपयोग कर रहा हूँ गतिविधि कोड है::

यहाँ मेरी लेआउट फ़ाइल है

public class ScrollingActivity extends AppCompatActivity implements View.OnClickListener { 

private View m_bottomSheet; 
private BottomSheetBehavior m_behaviour; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_scrolling); 

    m_bottomSheet = findViewById(R.id.bottom_sheet); 
    m_behaviour = BottomSheetBehavior.from(m_bottomSheet); 


    ((Button)findViewById(R.id.button)).setOnClickListener(this); 
    ((Button)findViewById(R.id.close_button)).setOnClickListener(this); 
} 
@Override 
public void onClick(View v) { 
    switch(v.getId()){ 
     case R.id.button: 
      m_behaviour.setState(BottomSheetBehavior.STATE_EXPANDED); 
      break; 
     case R.id.close_button: 
      m_behaviour.setState(BottomSheetBehavior.STATE_COLLAPSED); 
      break; 
    } 
} 

}

किसी भी सलाह की सराहना की जाएगी।

+0

http://stackoverflow.com/questions/39030742/bottomsheetbehavior-is-not-work-when-design-library-update-to-24-2 -0 –

उत्तर

11
m_behaviour.setPeekHeight(0); 

यह "झांकना" राज्य में डिफ़ॉल्ट, आप सेट कर सकते हैं, इसलिए यदि आप यह बिल्कुल नज़र नहीं करना चाहते, तो आप 0.

+0

धन्यवाद, स्कॉट। शुरुआत में m_behaviour.setPeekHeight (0) को सेट करते समय यह इरादा के रूप में काम करता था, उदा। ऑनक्रेट() में –

2
app:behavior_peekHeight="0dp" 
app:layout_behavior="@string/bottom_sheet_behavior" 

को झांकना ऊंचाई निर्धारित करने की आवश्यकता लेआउट में 0 डीपी की चोटी की ऊंचाई, इसे प्रोग्रामेटिक रूप से सेट करने की आवश्यकता नहीं है

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