पहचान पर बड़ा है: एंड्रॉयड 6.0.1 की नई रिलीज के साथस्पिनर आंतरिक गद्दी एंड्रॉयड 6.0.1
, एंड्रॉयड की तरह लगता है क्योंकि डिफ़ॉल्ट रूप से स्पिनर घटक पर कुछ परिवर्तन, चारों ओर भीतरी गद्दी बनाया नीचे गाजर थोड़ा बड़ा है।
मैंने इसे एक ऐप पर देखा जहां मैंने कोड में कुछ भी संशोधित नहीं किया है, लेकिन बस डिवाइस पर ओएस अपडेट किया है और फिर भी स्पिनरों के अलग-अलग आकार हैं।
स्थिति:
मैं है 2 स्पिनरों एक एक RelativeLayout
में दूसरे के बगल में (घटकों के बाकी बात नहीं, मैं सब कुछ जोड़ा है ताकि आप लेआउट के इस हिस्से देख सकते हैं - हटाया पूरी तरह से अनावश्यक गुण
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:ellipsize="end"
android:gravity="center_vertical"
android:singleLine="true"
tools:text="Test" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0"
android:gravity="center"
android:paddingLeft="4dp"
android:singleLine="true"
android:textColor="@color/text_primary"
android:textSize="@dimen/text_size_body"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="7%" />
</LinearLayout>
: या दृश्य आईडी)
<RelativeLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/container_for_buttons_on_the_right"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true">
<!-- Buttons here-->
</LinearLayout>
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner_1"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ViewSwitcher
android:id="@+id/spinner_switch"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_toEndOf="@id/spinner_1"
android:layout_toLeftOf="@id/container_for_buttons_on_the_right"
android:layout_toRightOf="@id/spinner_1"
android:layout_toStartOf="@id/container_for_buttons_on_the_right"
android:inAnimation="@anim/fade_in"
android:outAnimation="@anim/fade_out">
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- ImageView properties are incomplete but I need it there.-->
</ViewSwitcher>
</RelativeLayout>
getView()
विधि के लिए स्पिनर अनुकूलक द्वारा इस्तेमाल किया लेआउट यह है
एक उदाहरण प्रस्तुत किया:
स्क्रीनशॉट 2 अलग स्क्रीनशॉट लिया की संयुक्त है:
- ऊपर एक एक नेक्सस 5 पर Android 6.0
- चल डिवाइस पर लिया जाता है नीचे एक नेक्सस 5 डिवाइस पर भी लिया गया है लेकिन पर चल रहा है एंड्रॉइड 6.0.1
- संपादित करें 1
समर्थन पुस्तकालय से AppCompatSpinner का उपयोग करते हुए व्यवहार नहीं बदलता है। समर्थित लाइब्रेरी संस्करण 23.1.1
लहर प्रभाव को प्रदर्शित करते समय हमें एक बग से बचने के लिए नीचे की देखभाल के आसपास और पैडिंग जोड़ना पड़ा। यदि आपको निरंतर आकार की आवश्यकता है, तो पृष्ठभूमि को फ्रेमवर्क से कॉपी करें और इसका उपयोग करें, या AppCompat का उपयोग करें। – alanv
मैं AppCompat का उपयोग करता हूं :)। क्या आप मुझे बता सकते हैं कि उस पैडिंग का सटीक आयाम क्या है? मुझे लगता है कि यह लगभग 8 या 10 है? – Mike
यह 12 पीपी अंत पैडिंग और एक स्थिर 48 डीपी अंत-संरेखित अंतर है, जो प्रभावी ढंग से 12 डीपी शुरू पैडिंग है। आप सीधे प्लेटफ़ॉर्म/एंड्रॉइड -23/डेटा/res/drawable/spinner_background_material.xml' के तहत एंड्रॉइड एसडीके निर्देशिका में जांच सकते हैं। – alanv