मैं एंड्रॉइड बटन ऑब्जेक्ट के भीतर पाठ के चारों ओर आंतरिक पैडिंग को कैसे कम कर सकता हूं?


90

उदाहरण के बटन

तो, फिलहाल मेरे पास एक बटन है जो ऊपर की पहली छवि की तरह दिखता है। मैं बटन के अंदर पाठ के चारों ओर पैडिंग कैसे कम कर सकता हूं (दूसरी छवि की तरह अधिक देखने के लिए)?

लेआउट की चौड़ाई और ऊंचाई इस प्रकार है:

android:layout_width="match_parent"
android:layout_height="wrap_content"

कस्टम शैली आकार में पैरामीटर हैं "

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">

बाकी के साथ सिर्फ रंग विशेषताएँ और रेडी मान हैं।

बस इसे स्पष्ट करने के लिए, मैं बटन के फ्रेम को "लॉगिन" पाठ को करीब से गले लगाना चाहता हूं।

सभी मदद और प्रतिक्रिया बहुत सराहना की है। धन्यवाद।


1
Android: padding = "10dp 10 dp से घटाकर 5dp
रघुनंदन

यह बटन के बाहरी गद्दी से संबंधित है। मैं "लॉगिन" और इसके कंटेनर की आंतरिक पैडिंग की बात कर रहा हूं। हालांकि धन्यवाद।
इमरान एनजेड

इससे मुझे मदद मिली - stackoverflow.com/a/19227057/3325759 (लेखक - @StinePike) उत्तर से - Addandroid:includeFontPadding="false"
Mikelis Kaneps

पैडिंग को ओवरराइड करना मेरे लिए काम करता है। textView.setPadding (0,0,0,0);
एम। उस्मान खान

2
Android डालें: minHeight = "0dp" android: minWidth = "0dp" बटन में। यह काम करना चाहिए ..
सांप

जवाबों:


233

मुझे इसे खोजने में हमेशा के लिए लग गया लेकिन एक बटन में पाठ के चारों ओर "पैडिंग" वास्तव में बिल्कुल भी नहीं है। डिफ़ॉल्ट विजेट। न्यूटन शैली में एक न्यूनतम संपत्ति शामिल है। बटन पर मिनीहाइट बदलने से आप उम्मीद के मुताबिक पैडिंग एडजस्ट कर पाएंगे।

<Button
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textColor="@color/black"
        android:minHeight="40dip"/>


<style name="Widget.Holo.Button" parent="Widget.Button">
    <item name="android:background">@android:drawable/btn_default_holo_dark</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    <item name="android:textColor">@android:color/primary_text_holo_dark</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>

6
मैं चौड़ाई के साथ इसी तरह की समस्या का सामना कर रहा था। एंड्रॉइड सेट करना: minWidth = "0dp" ने काम किया, लेकिन फिर लंबे टेक्स्ट वाले बटनों पर, मुझे एंड्रॉइड की आवश्यकता थी: पैडिंगट्राइट और एंड्रॉइड: पैडिंग लाइट को खराब लेआउट को रोकने के लिए सेट किया जाना चाहिए।
साइमन फेदरस्टोन

मेरे Widget.Button कोई minHeight (sdk28) है
ROR

संपत्ति थीम बटन पर है, न कि माता-पिता "विजेट। न्यूटन"। यदि आप "Holo" से भिन्न विषय का उपयोग कर रहे हैं, तो यह किसी भिन्न स्थान पर हो सकता है। यहाँ "holo" android.googlesource.com/platform/frameworks/base/+/master/core/… के
स्टीवन

4

अपने कस्टम shape.xml फ़ाइल में इसे आज़माएं

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:padding="1dp">

भी आप अपने बटन के xml में परिवर्तन कर सकते हैं

android:layout_width="wrap_content"
android:layout_height="wrap_content"

2
यह बिल्कुल भी काम नहीं करता है अगर आप पढ़ते हैं कि मूल प्रश्न क्या पूछ रहा है
जेरेमी

2

मटेरियल कंपोनेंट्स लाइब्रेरी में, की वैल्यू के MaterialButtonसाथ insetBottomऔर उसके insetTopसाथ एक डिफॉल्ट स्टाइल है 6dp

आप उन्हें लेआउट में बदल सकते हैं:

  <com.google.android.material.button.MaterialButton
      android:insetTop="0dp"
      android:insetBottom="0dp"
      ../>

या एक शैली में:

 <style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
    <item name="android:insetTop">0dp</item>
    <item name="android:insetBottom">0dp</item>
 </style>

यहाँ छवि विवरण दर्ज करेंयहाँ छवि विवरण दर्ज करें


1

यदि आप एक छोटे से ऊपर और नीचे की गद्दी चाहते हैं, तो इसका उपयोग करें:

 android:paddingTop="2dp"
 android:paddingBottom="2dp"

यह बटन के बाहर पैडिंग के लिए है। "लॉगिन" पाठ को पास करने के लिए बटन फ्रेम प्राप्त करने के लिए मुझे जो प्रभाव पड़ता है वह है। धन्यवाद।
इमरान एनजेड

1
यह पहले से ही बटन की आंतरिक गद्दी है। आपको यह जाँचने की आवश्यकता हो सकती है कि आपने लाइनों को जोड़ा है android:paddingया android:layout_margin"माता-पिता के विचारों में <shape />
नेह

0

आप उपयोग कर सकते हैं सीमा में शैली AppCompatButton नीचे की तरह। इसके अलावा अपने पसंदीदा रंग का उपयोग करें।

Widget.AppCompat.Button.Borderless.Colored

बटन कोड

<androidx.appcompat.widget.AppCompatButton
        android:id="@+id/button_visa_next"
        android:background="@color/colorPrimary"
        style="@style/Widget.AppCompat.Button.Borderless.Colored"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/spacing_normal"
        android:text="@string/next"
        android:textColor="@color/white"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

आउटपुट:

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.