我有这个FlowLayout
,我有一组TextView
,我以编程方式构建。获取想要的名称后,我为布局中的每个名称创建一个TextView
。
我想做什么,如果我点击TextView
,我想把它移到另一个布局。我设法做到了,但我也想把它移回去。我也可以这样做,直到我编程,但我不能把它编程为无限循环。
这是一段代码,可以让你更好地理解我正在谈论的内容。
TextView tv = new TextView(new ContextThemeWrapper(getActivity(), R.style.FlowLayoutTextView));
tv.setText("Test");
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tvSelected = new TextView(new ContextThemeWrapper(getActivity(), R.style.FlowLayoutTextView));
tvSelected.setText(tv.getText().toString());
tvSelected.setLayoutParams(params);
tv.setVisibility(View.GONE);
filteredLayout.addView(tvSelected);
}
});
unfilteredLayout.addView(tv);
是否有可能使其有效?感谢。
LE:正如您在onClickListener
的{{1}}事件中看到的那样,我创建另一个TextView
我添加到其他布局中,将其移回我还可以添加一个TextView
此onClickListener
事件,但这不是解决方案。
答案 0 :(得分:1)
请尝试以下操作:
boolean isInFilterLayout = false; //Class variable
TextView tv = new TextView(new ContextThemeWrapper(getActivity(), R.style.FlowLayoutTextView));
tv.setText("Test");
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isInFilterLayout){
filteredLayout.remove(tv);
unfilteredLayout.addView(tv);
isInFilterLayout = false;
}else{
unfilteredLayout.remove(tv);
filteredLayout.addView(tv);
isInFilterLayout = true;
}
}
});
unfilteredLayout.addView(tv);