it-swarm.dev

كيفية إزالة الحشو حول الأزرار في Android؟

في تطبيق Android ، لدي هذا التصميم:

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" 
      Android:layout_width="match_parent" 
      Android:layout_height="match_parent" 
      Android:orientation="vertical">

    <fragment
         Android:id="@+id/map"
         Android:layout_width="match_parent"
         Android:layout_height="0dp" 
         Android:layout_weight="1" 
         class="com.google.Android.gms.maps.SupportMapFragment"/>

    <Button
        Android:id="@+id/button_back"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:onClick="CloseActivity"
        Android:padding="0dp"
        Android:text="@+string/back" />

</LinearLayout>

في المعاينة وعلى الهاتف ، يبدو كما يلي:

كما ترون على الزر الموجود في الجزء السفلي ، هناك بعض الحشو هناك.

كيف يمكنني التخلص من ذلك ، والسماح للزر بملء المنطقة السفلية بالكامل؟

133
omega

بالنسبة لي ، اتضح أن المشكلة هي الطول والعرض على بعض سمات Android.

في عنصر الزر ، أضف:

<Button Android:minHeight="0dp" Android:minWidth="0dp" ...

أو في نمط الزر الخاص بك:

<item name="Android:minHeight">0dp</item>
<item name="Android:minWidth">0dp</item>
350
D. A. Terre

هذا ليس حشوة ، إنه الظل المحيط بالزر الموجود في الخلفية. إنشاء الخلفية الخاصة بك وسوف تختفي.

41
Delyan

قد يكون الحل هو محاولة استخدام قيم -ve للهوامش مثل التالي:

<Button
    Android:id="@+id/button_back"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:onClick="CloseActivity"
    Android:padding="0dp"
    Android:layout_marginLeft="-5dip"
    Android:layout_marginRight="-5dip"
    Android:layout_marginTop="-5dip"
    Android:layout_marginBottom="-5dip"
    Android:text="@string/back" />

سيجعل هذا الفضاء تختفي. أعني أنه يمكنك اختيار القيمة dip المناسبة ، مما يجعلها تختفي. عملت معي. آمل أن يعمل لك.

21
Shobhit Puri

لإزالة الحشو حول زر التبديل ، نحتاج إلى ضبط الطول والعرض والارتفاع 0dp .Android:minWidth="0dp" Android:minHeight="0dp"

  <ToggleButton
        Android:id="@+id/toggle_row_notifications"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:minWidth="0dp"
        Android:minHeight="0dp"
        Android:layout_alignParentRight="true"
        Android:layout_centerVertical="true"
        Android:padding="@dimen/_5sdp"
        Android:textOn=""
        Android:textOff=""
        Android:background="@Android:color/transparent"
        Android:button="@drawable/toggle_selector"
        />

اضبط ملفك القابل للسحب على سمة الزر مثل: Android:button="@drawable/toggle_selector"

يوجد أدناه ملف toggle_selecter.xml الخاص بي

<?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
            <item Android:drawable="@drawable/notifications_toggle_on" 
                  Android:state_checked="true"/>
            <item Android:drawable="@drawable/notifications_toggle_off" 
                  Android:state_checked="false"/>
     </selector>
11
Yashoda Bane

أنا جديد على نظام Android ولكن واجهت موقفًا مشابهًا. لقد فعلت ما اقترحتهDelyan واستخدمت Android أيضًا: background = "@ null" في ملف تخطيط xml.

8
Casey Murray

واجهت نفس المشكلة ويبدو أنه بسبب لون الخلفية من الزر. حاول تغيير لون الخلفية إلى لون آخر ، على سبيل المثال:

Android:background="@color/colorActive"

ومعرفة ما إذا كان يعمل. يمكنك بعد ذلك تحديد نمط إذا كنت تريد استخدام الزر.

6
Panagiotis

في مجموعة XML للزر Android:includeFontPadding="false"

6
user1005462

إنها ليست حشوة بل هي ظلال الخلفية المرسومة أو مشكلة في minHeight و minWidth.

إذا كنت لا تزال ترغب في تأثير تموج لطيف ، فيمكنك إنشاء نمط الزر الخاص بك باستخدام ?attr/selectableItemBackground:

<style name="Widget.AppTheme.MyCustomButton" parent="Widget.AppCompat.Button.Borderless">
    <item name="Android:minHeight">0dp</item>
    <item name="Android:minWidth">0dp</item>
    <item name="Android:layout_height">48dp</item>
    <item name="Android:background">?attr/selectableItemBackground</item>
</style>

وتطبيقه على الزر:

<Button 
    style="@style/Widget.AppTheme.MyCustomButton"
    ... />
3
Allan Veloso

يجب عليك استخدام minHeight و minWidth في الزر وتأكد من استخدام padding

    Android:minHeight="0dp"
    Android:minWidth="0dp"
3
viper

لا يبدو أن الحشو ، الهامش ، أو الحد الأدنى/العرض. تحديد Android:background="@null" الزر يفقد الرسوم المتحركة التي تعمل باللمس ، ولكن اتضح أن تعيين الخلفية لأي شيء على الإطلاق يعمل على إصلاح تلك الحدود.


أنا أعمل حاليًا مع:

minSdkVersion 19
targetSdkVersion 23
2
juil

امنح الزر خلفية خلفية مخصصة: @ drawable/material_btn_blue

0
Mike6679

يمكنك أيضًا القيام بذلك باستخدام معلمات layout_width(height).

مثلا لقد حذفت المساحة العلوية والسفلية باستخدام كود Android:layout_height="18dp".

0
EAMax