1

我的应用程序中有几十个按钮,并且样式继承自Widget.AppCompat.Button. 大多数按钮都有一个高度和状态变化动画。惊人的。

不令人敬畏的是,一些按钮没有任何额外的好处。

这是其中一个工作按钮的示例

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="?attr/defaultPadding"
    android:minHeight="?attr/minTouchSize"
    android:textAppearance="?attr/textAppearanceListRowLabel" />

这是按钮不起作用的片段

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_weight="1"
        android:minHeight="?attr/minTouchSize" />

    <Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:minHeight="?attr/minTouchSize" />
</LinearLayout>

这些在不同的布局上。我尝试过的事情:

  • 我已添加button1到与按钮栏相同的布局文件中,并且button1仍然有效。
  • 如果我从栏中的其中一个按钮中删除权重,它们将不起作用。
  • 我已经尝试明确地将我的按钮样式放在每个按钮上
  • 如果我使按钮栏成为垂直布局并使按钮与父级匹配,那么它就可以工作!但这不是我想要的。

我想让这些按钮在水平布局中具有状态动画和高度。又名,我希望按钮占据相等的空间并彼此相邻放置两个。我怎样才能做到这一点?

我正在使用 appcompat 22.2.1

4

1 回答 1

0

我想问题出在您的活动主题中!!!!

值得一提的是,这些按钮的风格来自 Activity THEME。你可以做的是:

  1. 定义风格:

    <style name="ThemeMaterialButtonColor" parent="Base.Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/md_teal_500</item></style>
    
  2. 然后在您的 xml 按钮中添加以下内容:

    app:theme="@style/ThemeMaterialButtonColor"

于 2016-03-03T11:38:37.490 回答