Android AppCompatButton';s的高度在设备上不同?

Android AppCompatButton';s的高度在设备上不同?,android,android-layout,android-studio,android-fragments,Android,Android Layout,Android Studio,Android Fragments,我正在使用AppCompatButton并面临一个问题。在某些测试设备上,按钮的高度不同 例如: 三星Galaxy注4: 关于Nexus 6: 我将我的按钮定义如下: <android.support.v7.widget.AppCompatButton android:id="@+id/btn_add_to_cart" android:layout_width="0dp" android:layout_height="55dp"

我正在使用AppCompatButton并面临一个问题。在某些测试设备上,按钮的高度不同

例如:

三星Galaxy注4:

关于Nexus 6:

我将我的按钮定义如下:

<android.support.v7.widget.AppCompatButton
        android:id="@+id/btn_add_to_cart"
        android:layout_width="0dp"
        android:layout_height="55dp"
        android:layout_weight="5"
        android:text="Add to cart"
        android:textAllCaps="false"/>

我不知道为什么我的按钮在不同的设备上有所不同。请帮我把这个修好


提前感谢。

我在尝试对齐按钮阴影时遇到了类似的问题(通过高程完成)。某些三星设备上材质按钮的默认样式不设置标高或stateListAnimator。 尝试将按钮的android:stateListAnimator设置为如下:

<selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_enabled="true">
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="100"
                        android:valueTo="1dp"
                        android:valueType="floatType"/>
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="2dp"
                        android:valueType="floatType"/>
    </set>
</item>
<!-- base state -->
<item android:state_enabled="true">
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="100"
                        android:valueTo="0"
                        android:startDelay="100"
                        android:valueType="floatType"
                        tools:targetApi="kitkat" />
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="2dp"
                        android:valueType="floatType" />
    </set>
</item>
<item>
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="0"
                        android:valueTo="0"
                        android:valueType="floatType"/>
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="0"
                        android:valueType="floatType"/>
    </set>
</item>


我在尝试对齐按钮阴影(通过高程完成)时遇到类似问题。某些三星设备上材质按钮的默认样式不设置标高或stateListAnimator。 尝试将按钮的android:stateListAnimator设置为如下:

<selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_enabled="true">
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="100"
                        android:valueTo="1dp"
                        android:valueType="floatType"/>
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="2dp"
                        android:valueType="floatType"/>
    </set>
</item>
<!-- base state -->
<item android:state_enabled="true">
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="100"
                        android:valueTo="0"
                        android:startDelay="100"
                        android:valueType="floatType"
                        tools:targetApi="kitkat" />
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="2dp"
                        android:valueType="floatType" />
    </set>
</item>
<item>
    <set>
        <objectAnimator android:propertyName="translationZ"
                        android:duration="0"
                        android:valueTo="0"
                        android:valueType="floatType"/>
        <objectAnimator android:propertyName="elevation"
                        android:duration="0"
                        android:valueTo="0"
                        android:valueType="floatType"/>
    </set>
</item>


Note 4是在KitKat上运行还是在Lollipop+上运行?我的Note 4在Android 6.0上运行,nexus在Android 7.0上运行只是一个想法:我想检查一下你使用的应用程序的主题或它的父母是否类似于@Android:style/theme.DeviceDefault。有时这会在不同的设备上产生不同的结果。@GeorgeTheodorakis我认为这个问题只存在于三星的deviceok上,试着改变你的主题(或者它的父母)比如@android:style/Theme.Material.Light.darkaActionBar。Note 4是在KitKat上运行还是在Lollipop+上运行?我的Note 4在android 6.0上运行,nexus在android 7.0上运行只是一个想法:我想检查一下你使用的应用程序的主题或它的父项是否类似于@android:style/Theme.DeviceDefault。有时,这会在不同的设备上产生不同的结果。@GeorgeTheodorakis我认为这个问题只存在于三星的deviceok上,尝试将主题(或其父项)更改为类似@android:style/theme.Material.Light.darkaActionBar的内容。如果将内容的高度设置为wrap\u,您是否仍能看到差异?另外,你使用的是什么背景?我将按钮的高度改为包裹内容,然后在注释4中看起来不错,但Nexus 6上的按钮比edittextWhat主题小。你使用的是什么主题?您是否有该主题中按钮的默认样式?如果您将高度设置为“包裹”内容,您是否仍能看到差异?另外,你使用的是什么背景?我将按钮的高度改为包裹内容,然后在注释4中看起来不错,但Nexus 6上的按钮比edittextWhat主题小。你使用的是什么主题?你有那个主题中按钮的默认样式吗?