gpt4 book ai didi

java - 实现 View 状态设置

转载 作者:行者123 更新时间:2023-12-01 14:01:37 24 4
gpt4 key购买 nike

我有一个带有按钮的 fragment 。创建 Fragment 时,我想从 Fragment 获取 UiSettings 实例并更改是否应显示按钮。你可以看看 here 。所以我的代码是:

class MyFragment extends Fragment{
private Button button;
private UiSettings settings;

public getUiSettings(){
return settings;
}
}

class UiSettings{
private boolean showButton = true;
//setters and getters go here
}

我的问题是如何根据 UiSettings 触发按钮可见性,以及如何将按钮可见性状态连接到 UiSettings 中的更改?

最佳答案

我会重写 Fragment 中的 onResume() 并获取 UiSettings 实例,并将值应用到函数,例如

button.setVisibility(uiSettings.showButton ? View.VISIBLE : View.GONE);

所以总的来说,您需要添加到代码中

@Override
public void onResume() {
super.onResume();
button.setVisibility(uiSettings.showButton ? View.VISIBLE : View.GONE);
}

UiSettings 设为 Fragment 类之外的类,然后将 public setter 应用于showButton 变量,并在该 setter 中通过您创建的某个接口(interface)更改 Fragment 按钮的可见性(本质上是对两者进行数据绑定(bind))。

界面可能看起来像这样

public interface Binding {
dataChanged();
}

然后UiSettings

public class UiSettings {
public Binding binder;
private boolean showButton;

public void setShowButton(boolean showButton) {
this.showButton = showButton;
if (binder != null) {
binder.dataChanged();
}
}

public boolean getShowButton() {
return showButton;
}
}

然后您的 fragment 将实现 Binding 并添加到其中

@Override
public void dataChanged() {
button.setVisibility(uiSettings.getShowButton() ? View.VISIBLE : View.GONE);
}

关于java - 实现 View 状态设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19317468/

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