में स्पेसिंग या पैडिंग निकालें मैं समर्थन lib v21 से एंड्रॉइड स्पिनर और एडिटेक्स्ट का उपयोग कर रहा हूं। मैं आंकड़े में दिखाए गए संपादन के समान टेक्स्ट को संरेखित करना चाहता हूं। लेकिन, बहरे स्पिनर में अंतर या पैडिंग शामिल है। इसलिए, मैं इसे बाईं ओर टेक्स्ट संरेखित करने के लिए निकालना चाहता हूं। कृपया इसे हटाने में मदद करें।एंड्रॉइड स्पिनर
उत्तर
इस प्रयास करें,
स्पिनर पंक्ति के लिए कस्टम लेआउट बनाएँ (के रूप में आप की जरूरत है)।
जब आप डेटा एडाप्टर को स्पिनर पर सेट करते हैं तो लेआउट को बढ़ाएं।
आप नौ पैच के माध्यम से अपने खुद के स्पिनर अनुकूलित और
निर्दिष्ट गद्दी अपने SpinnerAdapter में कर सकते हैं:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
return view;
}
कोड के नीचे का प्रयास करें ऐसा करने के लिए। आप कस्टम एडाप्टर का उपयोग कर रहे हैं, तो
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/textViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="false"
android:textAlignment="inherit"
android:textAppearance="?android:attr/textAppearanceMedium" />
काम नहीं कर रहा है - 30.11.2017 – JohannaNoobie
नीचे के रूप में textViewStyle करने के लिए अपने स्पिनर सूची आइटम लेआउट में शैली विशेषता बदलें, इसके बाद getView()
में गद्दी सेट करने का प्रयास: TextView
कि में प्रदर्शित किया जाता है के लिए
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
return view;
}
लेआउट अपने
getView(position, convertView, parent)
:Spinner
अपनेSpinnerAdapter
, जो 2 तरीके प्रदान से आता रिटर्न देखें संक्षिप्त रूप के लिए, तो आप इस ओवरराइड कर सकते हैं विभिन्न चयनित आइटम के लिए विभिन्न लेआउट वापस जाने के लिएgetDropdownView(position, convertView, parent)
: विस्तृत स्थिति में प्रत्येक लटकती आइटम के लिए देखें लौट
में (आप चयन के लिए पॉपअप/संवाद खोलने के लिए स्पिनर क्लिक करने के बाद) आपका मामला आपको अपने SpinnerAdapter.getView(position, convertView, parent)
को ओवरराइड करना चाहिए और अपनी पसंद के पैडिंग/रिक्ति के साथ लेआउट को फुलाएं।
उदाहरण के लिए:
spinner.setAdapter(new MyAdapter());
MyAdapter.java
class MyAdapter implements SpinnerAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.spinner_item, parent, false);
}
// bind your data here
return convertView;
}
// other implementation
}
रेस/लेआउट/spinner_item.xml
<!-- set padding margin whatever here -->
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
तुम भी आसानी से में से एक का उपयोग कर सकते ढांचा सिद्ध ided SpinnerAdapter
indirect subclasses (ArrayAdapter<T>, BaseAdapter, CursorAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, ThemedSpinnerAdapter
), बस सही लेआउट की आपूर्ति सुनिश्चित करें जो getView()
विधि द्वारा उपयोग की जाएगी।
यो जावा कोड में गड़बड़ नहीं करना चाहते हैं और यह शैली में है इस फ़ाइल के लिए
खोजें तो (Cmd + Shift + O) abc_spinner_textfield_background_material.xml
और अपनी परियोजना के लिए नकल। रूट तत्व से सभी इन्सेट मान निकालें और फ़ाइल को अपने स्पिनर की पृष्ठभूमि के रूप में देखें।
मेरे मामले में यह इस (drawable/spinner_background.xml
)
<inset xmlns:android="http://schemas.android.com/apk/res/android">
<selector>
<item
android:state_checked="false"
android:state_pressed="false">
<layer-list>
<item android:drawable="@drawable/abc_textfield_default_mtrl_alpha" />
<item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha" />
<item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
</selector>
</inset>
तरह लग रहा है और मेरे styles.xml में मैं इसे इस तरह से
<style name="DxSpinner" parent="@style/Widget.AppCompat.Spinner.Underlined">
<item name="android:background">@drawable/spinner_background</item>
</style>
तुम भी एक्सएमएल
में स्पिनर की गद्दी से हटा सकते हैं का उपयोग करेंकेवल 0 डीपी पर पैडिंग सेट करने की आवश्यकता है।
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:padding="0dp"
android:id="@+id/my_spinner">
यह काम मुझे
Spinner spn = (Spinner) findViewById(R.id.spn);
spn.setPadding(0, spn.getPaddingTop(), spn.getPaddingRight(), spn.getPaddingBottom());
के लिए मैं बस के रूप में अच्छी तरह से इस मुद्दे को टक्कर मार दी। मैं वास्तव में पैडिंग के बजाय मार्जिन समायोजित करने के साथ इसे हल करने में सक्षम था, इसलिए एंड्रॉइड सेटिंग: स्पिनर आइटम में marginStart = "0dp"।
यह सरणी एडाप्टर एंड्रॉइड स्पिनर में बाएं पैडिंग को हटा देता है।
Kotlin संस्करण:
open class NoPaddingArrayAdapter<T>(context: Context, layoutId: Int, items: List<T>?) : ArrayAdapter<T>(context, layoutId, items) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? {
val view = super.getView(position, convertView, parent)
view.setPadding(0,view.paddingTop,view.paddingRight,view.paddingBottom)
return view
}
}
- 1. एंड्रॉइड: स्पिनर
- 2. एंड्रॉइड स्पिनर
- 3. स्पिनर एंड्रॉइड
- 4. एंड्रॉइड स्पिनर एंड्रॉइड 5.0
- 5. एंड्रॉइड स्पिनर चयन
- 6. एंड्रॉइड स्पिनर सेट मान
- 7. एंड्रॉइड: प्रगति संवाद स्पिनर
- 8. एंड्रॉइड - स्पिनर ड्रॉपडाउन एरो
- 9. स्पिनर कार्यक्षमता एंड्रॉइड 6.0.1
- 10. स्पिनर
- 11. स्पिनर
- 12. स्पिनर
- 13. एंड्रॉइड स्पिनर लेआउट/डिज़ाइन बदलना
- 14. स्पिनर प्रोग्रामेटिक रूप से एंड्रॉइड
- 15. एंड्रॉइड - सेट स्पिनर स्टार्ट पॉइंट
- 16. एंड्रॉइड: दो स्पिनर ऑनइटम चयन()
- 17. एंड्रॉइड स्पिनर डिफ़ॉल्ट टेक्स्ट सेट
- 18. स्पिनर
- 19. स्पिनर
- 20. स्पिनर
- 21. स्पिनर
- 22. स्पिनर
- 23. स्पिनर
- 24. स्पिनर
- 25. एंड्रॉइड ड्रॉपडाउन-मेनू (कोई स्पिनर नहीं!)
- 26. एंड्रॉइड - स्पिनर विजेट को कस्टमाइज़ करना
- 27. एंड्रॉइड में संपादन योग्य स्पिनर कैसे बनाएं?
- 28. स्पिनर के लिए एंड्रॉइड सेटिंग लेबल
- 29. स्पिनर एंड्रॉइड में आधा कट टेक्स्ट
- 30. एंड्रॉइड स्पिनर ड्रॉपडाउन वर्टिकल अतिरिक्त स्पेस/पैडिंग
मेरे मामले में काम किया .. लेकिन शायद सुपर दृश्य अनावश्यक है। बस 'convertView.setPadding()' को सेट करना चाहिए। –
@Chan आप किस एडाप्टर का उपयोग करते हैं? –
@ वोलोडिमिरखोडोनोविच स्पिनरएडाप्टर –