2015-01-22 7 views
10

मैं AppCompat विषय का उपयोग कर रहा हूँ और मैं मेरे बटन पर minHeight विशेषता निर्धारित हैं:AppCompat सामग्री बटन शैली को कैसे अनुकूलित करें?

<style name="Theme.MyTheme" parent="Theme.AppCompat"> 
    <item name="android:buttonStyle">@style/MyButtonStyle</item> 
</style> 

<style name="MyButtonStyle" parent="...?"> 
    <item name="android:minHeight">60dp</item> 
</style> 

हालांकि, वहाँ MyButtonStyle के लिए माता पिता के रूप में स्थापित करने के लिए कोई Widget.AppCompat.Button शैली है। अगर मैं android:Widget.Button का उपयोग करता हूं, तो मेरे सभी बटन पुरानी क्रैपी शैली की तरह दिखते हैं। मैंने TextAppearance.AppCompat.Button जैसे कई अन्य ऐपकंपेट विषयों की कोशिश की, लेकिन वे काम नहीं करते हैं।

बटन शैली के लिए मूल विषय छोड़ने से बटन को सही ढंग से स्टाइल नहीं किया जाता है।

मैं डिफ़ॉल्ट Theme.AppCompatbuttonStyle को कैसे अनुकूलित कर सकता हूं?

+0

उन्होंने अब भी एक बटन जोड़ा है: android.support.v7.widget.AppCompatButton – irvanjit

उत्तर

3

आप res/values-v21/styles.xml में (res/values-v14/styles.xml में) Base.MyButtonStyle एपीआई पर android:Widget.Holo.Button का विस्तार हो सकता है 14+ और android:Widget.Material.Button एपीआई पर 21+ (। इस शैली डिवाइस सिस्टम संस्करण के अनुसार बदल जाएगा। अपने मंच विशिष्ट संशोधनों यहाँ रखो।

तब MyButtonStyle है Base.MyButtonStyle का विस्तार करने और यहां android:minHeight परिभाषित करते हैं (res/values/styles.xml में)। यह सभी प्लेटफार्मों पर लागू होंगे।

आप बटन तो शैली MyButtonStyle उपयोग कर सकते हैं।

यह उदाहरण मानता है कि आपका न्यूनतम एसडीके 14 है।

और हाँ, कोई एपकोम्पेट-वी 7 बटन शैली नहीं है (ठीक है, कम से कम अभी तक नहीं)।

संपादित

इसका मतलब यह है कि आप प्लेटफार्मों पर Holo बटन के साथ ठीक लॉलीपॉप से ​​अधिक उम्र के हैं। यह अविभाज्य लगता है और यदि आप लहरों के बिना कर सकते हैं, तो यह ठीक होना चाहिए। यदि आप तरंग चाहते हैं तो मैं आपको तीसरी पार्टी लॉलीपॉप बटन लाइब्रेरी के लिए Google का सुझाव देता हूं।अपने layout.xml में AppCompat +22 साथ

+0

धन्यवाद। कुछ कारणों से मैं सोच रहा था कि होलो को बटन थीम सेट करने से कुछ कारणों से 15-20 पर सही काम नहीं होगा, लेकिन निश्चित रूप से यह वांछित परिणाम करता है और उत्पादन करता है। –

4

अपने ही सवाल का जवाब करने के लिए, यह AppCompat does not in fact supportButton विजेट वर्तमान में प्रकट होता है:

  • सब कुछ द्वारा प्रदान की:

    AppCompat UI विजेट्स के उपसमूह के लिए एंड्रॉयड के पिछले संस्करणों पर समान व्यवहार प्रदान करता है AppCompat के टूलबार (एक्शन मोड, आदि)

  • एडिटटेक्स्ट
  • स्पिनर
  • चेक बॉक्स
  • RadioButton
  • स्विच (नई android.support.v7.widget.SwitchCompat का उपयोग करें)
  • CheckedTextView

केवल वैकल्पिक हल मैं देख रहा हूँ सामग्री बटन शैली से बनाना होगा एंड्रॉइड स्रोत कोड से, एक कार्य जो मेरी इच्छा के दायरे से बाहर फैला हुआ है।

+5

यह अब 22.1.0 – Caipivara

+0

संकलन में 'com.android.support:appcompat-v7:22.0.0' संकलित करने के लिए इसका समर्थन करता है एंड्रॉइड स्टूडियो में .gradle पैकेज प्राप्त करने में विफल रहता है। मुझे v22 कैसे शामिल करना चाहिए? – dowjones123

+1

एपकोपेट के नवीनतम संस्करण में वास्तव में एक बटन है: android.support.v7.widget.AppCompatButton – irvanjit

1

कस्टम बटन शैली अपने styles.xml

<style name="Button.Tinted" parent="Widget.AppCompat.Button"> 
     <item name="colorButtonNormal">YOUR_TINT_COLOR</item> 
     <item name="colorControlHighlight">@color/colorAccent</item> 
     <item name="android:textColor">@android:color/white</item> </style> 

में

<Button 
     android:id="@+id/but_next" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/but_continue" 
     android:theme="@style/Button.Tinted" /> 
+0

यह मेरा दृष्टिकोण था जब तक कि मैंने देखा कि अक्षम बटन सक्षम लोगों की तरह दिखते थे –

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