我正在使用AppCompatButton并遇到问题。某些测试设备上的按钮高度不同。
例如:
在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"/>
我不知道为什么设备之间的按钮不同。请帮我解决这个问题。
提前致谢。
答案 0 :(得分:0)
在尝试对齐按钮阴影时(由高程完成)我遇到了类似的问题。某些Samsung设备上“材质”按钮的默认样式不设置高程或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>