labview如何设置一个按钮的可见与隐藏;即当一定的条件满足时按钮才会显示出来可用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了labview如何设置一个按钮的可见与隐藏;即当一定的条件满足时按钮才会显示出来可用相关的知识,希望对你有一定的参考价值。
如题~~~
每个控件的属性节点里面都有一个属性 可见 (英文:visible),当值为 T的时候,可见,值为F的时候,不可见。给定你自己的条件判断,通过条件结构选择是写入T或者F就可以实现了!
如下图:
参考技术A 创建这个按钮的属性节点(写入状态),输入的一端连上你的条件。 参考技术B下面程序你可以编来体验下,
参考技术C 按钮的属性节点里有相应设置滚动列表视图后如何在按钮上设置焦点(设置可见性)
【中文标题】滚动列表视图后如何在按钮上设置焦点(设置可见性)【英文标题】:How to set focus on button after scrolling list view (Set Visibility) 【发布时间】:2018-10-04 04:36:54 【问题描述】:我是 android 新手,我正在使用带有一个文本视图和按钮的列表视图。我正在执行一些可见性的东西,在单击 button1 后它将隐藏 button1 并显示 button2。
设置可见性 View.GONE 和 View.VISIBLE 工作正常,但是当我神奇地滚动列表视图时出现问题,它将所有 button1 重置为 View .VISIBLE 状态。
请任何人帮助我解决这个问题。
代码:
@Override
public View getChildView(final int i, final int i1, boolean b, View
view, ViewGroup viewGroup)
if(view == null)
holder = new ViewHolder();
LayoutInflater parentInflater = (LayoutInflater) mctx.getSystemService(mctx.LAYOUT_INFLATER_SERVICE);
view = parentInflater.inflate(R.layout.itemname_child_layout, null);
else
holder = (ViewHolder) view.getTag();
holder.button1 = view.findViewById(R.id.button1);
holder.button1 = view.findViewById(R.id.button2);
//initial button state
holder.button1.setVisibility(View.VISIBLE);
holder.button1.setVisibility(View.GONE);
holder.recordBtn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
holder.button1.setVisibility(View.GONE);
holder.button2.setVisibility(View.VISIBLE);
view.setTag(holder);
return view;
【问题讨论】:
尝试使用recylerview 【参考方案1】:您需要记录按钮的点击,因为当您滚动列表视图时,它会刷新到上一阶段。
所以像这样在你的适配器类中通用声明一个变量:
ArrayList<Integer> count = new ArrayList();
现在将列表设置为 0 直到适配器大小
for(int i=0;i<adapter.size;i++)
count.add(0);
然后在单击 button1 后,将您的按钮可见性设置如下:
holder.recordBtn.setTag(position);
if(count.get(position)==0)
holder.button1.setVisibility(View.GONE);
holder.button2.setVisibility(View.VISIBLE);
else
holder.button1.setVisibility(View.VISIBLE);
holder.button2.setVisibility(View.GONE);
holder.recordBtn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
int pos = (int)view.getTag();
if(count.get(pos)==0)
count.set(pos,1);
holder.button1.setVisibility(View.GONE);
holder.button2.setVisibility(View.VISIBLE);
else
count.set(pos,0);
holder.button1.setVisibility(View.VISIBLE);
holder.button2.setVisibility(View.GONE);
【讨论】:
感谢您的回答,它正在部分工作,当我单击 button1 时,它隐藏并显示 button2 很好。并且由于 button1 点击计数设置为 1。当我点击 下一个系列的 button1 时,它无法隐藏,因为在点击上一个 button1 后,我将计数更新为 1。所以现在我需要点击两次下一个系列的 button1 使其成为 button2。有什么想法吗??【参考方案2】:试试这个...我已经编辑了你的代码
@Override
public View getChildView(final int i, final int i1, boolean b, View
view, ViewGroup viewGroup)
if(view == null)
holder = new ViewHolder();
LayoutInflater parentInflater = (LayoutInflater) mctx.getSystemService(mctx.LAYOUT_INFLATER_SERVICE);
view = parentInflater.inflate(R.layout.itemname_child_layout, null);
holder.button1 = view.findViewById(R.id.button1);
holder.button2 = view.findViewById(R.id.button2);
view.setTag(holder);
else
holder = (ViewHolder) view.getTag();
//initial button state
holder.button1.setVisibility(View.VISIBLE);
holder.button2.setVisibility(View.GONE);
holder.recordBtn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
holder.button1.setVisibility(View.GONE);
holder.button2.setVisibility(View.VISIBLE);
return view;
【讨论】:
感谢 Pratik 的回答。您能解释一下您在这里使用 button1 和 button2 到底在做什么吗? holder.button1 = view.findViewById(R.id.button1); holder.button1 = view.findViewById(R.id.button2); @MithunWalawalkar 看到我再次编辑了我的答案,你在 setTag() 之前调用 getTag()。每次你必须先 getview 和 setTag() 然后 getTag() 不,我更改了代码,但也面临同样的问题。以上是关于labview如何设置一个按钮的可见与隐藏;即当一定的条件满足时按钮才会显示出来可用的主要内容,如果未能解决你的问题,请参考以下文章
labview中制作一个选项卡按钮设置好背景,放入进去的控件怎么才能不被覆盖
如何设置可见以隐藏设置为可见的 jDialog(在 if 条件内)显示(在 if 循环之外)?