मैं वर्तमान में एंड्रॉयड डिजाइन समर्थन पुस्तकालय से एक CoordinatorLayout
में एक FrameLayout
के साथ एक समस्या हो रहा है, जबकि मैं इस post से निर्देशों का पालन करते हुए टैब बनाने के साथ CoordinatorLayout में FrameLayout।एंड्रॉयड SupportLib - AppBarLayout लेने वाली पूरे स्क्रीन ऊंचाई
मूल रूप से सबसे चीजें काम की उम्मीद के रूप में, कंटेनर-टुकड़ों में फुलाया जाता है FrameLayout
और उनकी टैब-टुकड़े correclty टैब (यह इस तरह से है क्योंकि मैं कई टुकड़े मिल गया है जो लेआउट पुनः उपयोग करना चाहिए की जरूरत है) के रूप में ViewPager
से जुड़ जाते हैं ।
कि FrameLayout
(और एक परिणाम यह भी टैब-टुकड़े के रूप में) पूरे स्क्रीन ऊंचाई तो यह Toolbar
और TabLayout
overlaps की खपत है। CoordinatorLayout
, Toolbar
, और TabLayout
साथ
बेस-लेआउट::
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<include layout="@layout/toolbar" />
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.CoordinatorLayout>
अलग टुकड़े फुलाया द्वारा इस्तेमाल किया लेआउट आदेश समस्या कल्पना करने के लिए मैं निम्नलिखित छवि बनाई है container
में:
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
सभी टुकड़े
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(getLayoutRes(), container, false);
}
(एसओ बुला inflater.inflate(getLayoutRes(), null);
मुद्दा एक ही समस्या पैदा कर रहा था पर एक और पोस्ट पर) मेरी BaseFragment
श्रेणी के आधार पर बढ़ाई रहे हैं, तो मैं एक सामान्य LinearLayout
FrameLayout
नीचे AppBarLayout
शुरू होता है के साथ CoordinatorLayout
की जगह जैसा कि अपेक्षित है लेकिन documentationAppBarLayout
के अनुसार इसकी अधिकांश सुविधाओं के लिए CoordinatorLayout
का प्रत्यक्ष बच्चा होना आवश्यक है।
मैं marginTop
को FrameLayout
पर जोड़ सकता हूं लेकिन मैं जानना चाहता हूं कि इसके लिए कोई उचित समाधान है या नहीं। किसी भी संकेत के लिए अग्रिम धन्यवाद!
यह वही समस्या हल हुई जो मैंने किया था, धन्यवाद, लेकिन मुझे नहीं पता कि क्यों। 'Appbar_scrolling_view_behavior' वास्तव में क्या करता है ..? – Micro
@MicroR - मैं [AppBarLayout.ScrollingViewBehavior [(http://developer.android.com/reference/android/support/design/widget/AppBarLayout.ScrollingViewBehavior.html) के जावाडोक को पढ़ने का सुझाव देता हूं या [स्रोत को देख रहा हूं) कोड] (https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/design/src/android/support/design/widget/AppBarLayout.java#1128) - यह आवश्यक जोड़ता है 'AppBarLayout' को ओवरलैप न करने के साथ-साथ' AppBarLayout' को स्क्रॉल करने योग्य प्रतिक्रिया (जैसे 'नेस्टेडस्क्रोल व्यू' या 'रीसाइक्लर व्यू') – ianhanniballake
@ianhanniballake पर स्क्रॉल करने का जवाब देने की अनुमति देता है, मैंने आपके सुझाव का उपयोग किया है लेकिन समस्या मुझे मिल रही है मेरे tablayout और framelayout के बीच कुछ अतिरिक्त जगह मैंने कारण का विश्लेषण करने के लिए बीके रंग लागू किया है लेकिन UI – Erum