gpt4 book ai didi

java - 处理自定义 View 中的布局

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

我制作了一个自定义 View 来满足我对以简单方式显示数学 vector 的需求。我扩展了 LinearLayout 并为值添加了 ArrayList。每次值更改时,我都会调用自定义方法 redraw() 将 EditText 添加到 LinearLayout。这样,在添加值后,所有现有的 EditText 都会再次添加。如何清除 LinearLayout 或显示新的 LinearLayout?

这里有一些代码:

public Vector(Context context, AttributeSet attrs) {
super(context, attrs);
setWillNotDraw(false);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (inflater != null) {
inflater.inflate(R.layout.vector, this);
}
}

public void redraw() {
for (Float value : getArray()) {
EditText edit = new EditText(getContext());
edit.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.FILL_PARENT));
edit.setText(value.toString());

((LinearLayout) findViewById(R.id.root)).addView(edit);
}
}

最佳答案

您可以使用((LinearLayout) findViewById(R.id.root)).removeAllViews() 删除所有 View 。但是,如果您可以为现有编辑 TextView 设置新值并仅在仍然需要时添加新 View ,那么为什么要重新添加所有编辑文本呢?我没有完全理解你的意思。

关于java - 处理自定义 View 中的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8639915/

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