AndroidX MaterialButton не показывает стиль - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть LinearLayout, где я программно помещаю кнопки.В начале есть одна кнопка внутри, чтобы добавить новые кнопки фильтра.XML выглядит следующим образом:

        <LinearLayout
            android:id="@+id/filterContainer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            android:orientation="horizontal">

            <com.google.android.material.button.MaterialButton
                android:id="@+id/addFilterButton"
                style="@style/iconButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:icon="@drawable/ic_filter_list_icon_color" />
        </LinearLayout>

Если нажать кнопку фильтра, можно добавить новые фильтры.В ViewGroup добавляются элементы LinearLayout, например:

private void addButtonForFilter(ResultFilter filter) {
    MaterialButton newFilter = new MaterialButton(mFilterBoxViewGroup.getContext(),
            null, R.attr.materialButtonStyle);
     newFilter.setText(FilterStringProvider.getLabel(mFilterBoxViewGroup.getContext(), filter));
    newFilter.setLayoutParams(mParameters);
    newFilter.setOnClickListener(this);
    newFilter.setTag(filter.getFilterType());
    mFilterBoxViewGroup.addView(newFilter);
}

Здесь кнопки отображаются в стандартном дизайне материала.Теперь я хотел бы изменить его на определенный стиль.

<style name="textButton" parent="Widget.MaterialComponents.Button.TextButton">
    <item name="backgroundTint">@color/colorActionbarTabs</item>
    <item name="android:textColor">@color/itemColor</item>
    <item name="android:textSize">@dimen/item_standard_text_size</item>
    <item name="android:clipToPadding">false</item>
</style>

Если я изменю стиль в конструкторе кода выше, тогда кнопка не будет отображаться, как ожидалось:

    MaterialButton newFilter = new MaterialButton(mFilterBoxViewGroup.getContext(),
            null, R.style.textButton);

Кнопка теперь отображается без отступов, даже если новый стиль имеет MaterialButton в качестве родителя, и я не смог выяснить, что является причиной такого поведения.Есть идеи?

...