3

我有一个很简单的问题:

如果我通过以编程方式更改某些内容(例如文本和背景颜色)来修改小部件(例如)textview,我如何将其重置为原始 xml 布局文件中指定的内容,[编辑]而不写出代码来完成这一切手动[/编辑]?我可以获取布局中指定的 textview 的所有参数,然后以某种方式应用它们吗?

谢谢。

4

1 回答 1

1

我发现这个问题的解决方案是:

  • 在更改布局之前,将其保存在班级的某个字段中;
public class MyFragment extends BaseFragment {

    private ConstraintLayout.LayoutParams layoutParamsTvOriginal;

...
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
        this.layoutParamsTvOriginal = (ConstraintLayout.LayoutParams) displayTextView.getLayoutParams();
...
  • 创建一个新LayoutParams的以更改其值
ConstraintLayout.LayoutParams layoutParamsTvNew = new ConstraintLayout.LayoutParams(layoutParamsTvOriginal); //create new to change values
layoutParamsTvNew.verticalBias =  (float) 0.378; //for example
displayTextView.setLayoutParams(layoutParamsTvNew);
  • 当您需要恢复原始值时:
displayTextView.setLayoutParams(layoutParamsTvOriginal);

于 2019-10-28T21:17:55.320 回答