2016-01-25 2 views
5

Я пытаюсь создать кнопку, прикрепленную к TextView над кнопкой, как показано на рисунке ниже.Как удалить дополнительную прокладку или маржу в кнопке дизайна материала?

enter image description here

выше скриншот взят из примечания 4 и версия ОС 5.0.1.

Ниже приведено код, используемый для достижения пользовательского интерфейса.

макет/xyz.xml

<Button 
    android:layout_width="250dp" 
    android:layout_height="50dp" 
    android:theme="@style/myButton" 
    android:text="Cancel"/> 

значения-v21/style.xml

<style name="myButton" parent="@style/Base.Widget.AppCompat.Button"> 
    <item name="android:colorButtonNormal">#3578A9</item> 
    <item name="android:inset">0dp</item> 
    </style> 

Но если я запускаю тот же код в Nexus4 OS verison 5.1.1, кнопка принимает маржа для всех 4 сторон, а скриншот выглядит ниже.

enter image description here

Если удалить «Android: тему» ​​и обеспечить «Android: фон», пользовательский интерфейс выглядит как первое изображение. Но это не даст эффекта пульсации. Итак, как достичь UI как первого изображения с эффектом пульсации.

+0

Y r u предоставление поля Button в ur xyz.xml, если вы хотите кнопку ниже TextView без какого-либо пространства. –

+0

Эта проблема возникает из-за разного размера экрана, который вы тестируете @sachi –

+0

@ChintanBawa Я обновил код. Но все равно это будет работать не так, как ожидалось. Я столкнулся с проблемой только с ОС 5.1.1 и выше. – sachi

ответ

6

Шаг 1: Вставьте следующий код в styles.xml

<style name="myColoredButton"> 
     <item name="android:textColor">#FF3E96</item> 
     <item name="android:padding">0dp</item> 
     <item name="android:minWidth">88dp</item> 
     <item name="android:minHeight">36dp</item> 
     <item name="android:elevation">1dp</item> 
     <item name="android:translationZ">1dp</item> 
     <item name="android:background">#FF0000</item> 
    </style> 

Здесь вы можете изменить TextColor (я использовал # FF3E96 выше) и цвет фона (я использовал # FF0000) для вашей кнопки. Вы также можете переопределить значения textColor из вашего макета xml, связанного с Button, с помощью android:colorButtonNormal.

Шаг 2: Создайте новый файл XML под папкой и вводимый коэффициентом добавьте следующий код: Я назвал свой файл XML в primary.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/colorPrimary"> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <corners android:radius="1dp" /> 
      <solid android:color="#8B8386" /> 
     </shape> 
    </item> 
</ripple> 

Шаг 3: Используйте стиль и рисуют в ваших кнопках следующим образом ,

<Button 
     style="@style/myColoredButton" 
     android:layout_width="250dp" 
     android:layout_height="50dp" 
     android:text="Cancel" 
     android:gravity="center" 
     android:background="@drawable/primary_round" 
     android:colorButtonNormal="#3578A9" /> 

Надеюсь, что он решает вашу проблему.