android - GuidedAction setEnable 不会更改文本颜色

标签 android leanback

我正在开发一个使用 Leanback 库的 Android TV 应用程序。有一个包含电子邮件、密码和登录按钮的登录表单。我想仅在电子邮件和密码有效时启用登录按钮。

这是我的代码:

mLoginButtonAction = new GuidedAction.Builder(this.getActivity())
            .id(id)
            .title(title)
            .description(desc)
            .build();
actions.add(action);

我首先禁用它:

mLoginButtonAction.setEnabled(false);

然后在有效时启用它:

mLoginButtonAction.setEnabled(valid);

然后该按钮将被启用,我可以单击它。但按钮的颜色仍然与禁用模式下的颜色相同。任何想法?谢谢。

enter image description here

最佳答案

对操作的修改不会触发对 GuidedStepFragment 的通知,必须手动完成。

要通知操作更改,您首先需要项目索引。

int idx = findActionPositionById(actionId);

获取并修改您的操作

GuidedAction someAction = getActions().get(idx);
someAction.setEnabled(valid);

接下来通知fragment更新

notifyActionChanged(idx);

关于android - GuidedAction setEnable 不会更改文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37317524/

相关文章:

android - java.lang.IllegalStateException 因为 okhttp 异步 HTTP POST 请求中的 onResponse 代码

android - 安卓电视 Leanback : Unsetting Video Title Increases Spacing between Rows

android - Snackbar 或 Toast AndroidTv

android - 在Android Studio版本4.0中意外退出“获取错误过程”

android - $http 调用不适用于 Ionic Android 构建

android - camera2,android中的手动对焦

android - 禁用标题侧栏滚动

android - thread/runnable, handler, runonuithread, asynctask 之间的区别

android - 为什么 android 键盘覆盖了我的 EditText?

android - 使用 LeanBack 支持库自定义 Android TV 界面