gpt4 book ai didi

android - 更改 Leanback 库中 DetailsFragment 中 Action 按钮的默认选择颜色

转载 作者:行者123 更新时间:2023-11-29 15:04:37 25 4
gpt4 key购买 nike

enter image description here大家好,

我想更改详细信息 fragment 中操作按钮选择时出现的默认背景色的颜色。知道如何实现相同的效果吗?

最佳答案

我不喜欢将 styles.xml 复制到我自己的项目中的想法。我这样做的方法是在 ArrayObjectAdapter 构造函数中提供一个自定义呈现器。当您不提供演示者时,DetailsOverviewRow 会为您插入一个默认演示者。

public class ActionPresenter extends Presenter {

@Override public ViewHolder onCreateViewHolder(ViewGroup parent) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_action, parent, false);
return new ViewHolder(v);
}

@Override public void onBindViewHolder(ViewHolder viewHolder, Object item) {
Button button = (Button) viewHolder.view;
Action action = (Action) item;

button.setText(action.getLabel1());
}

@Override public void onUnbindViewHolder(ViewHolder viewHolder) {

}
}

和 custom_action.xml

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:lines="1"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:includeFontPadding="false"
android:background="@drawable/action_selector"
style="?android:attr/borderlessButtonStyle"
/>

然后在详细信息 fragment 中,您可以像使用任何其他适配器/演示器一样使用它

ArrayObjectAdapter actionsAdapter = new ArrayObjectAdapter(new ActionPresenter());
actionsAdapter.add(new Action(0, "Watch Now"));
actionsAdapter.add(new Action(1, "More Info"));
row.setActionsAdapter(actionsAdapter);

关于android - 更改 Leanback 库中 DetailsFragment 中 Action 按钮的默认选择颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39385826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com