更改 android studio 中的 textview 可见性

Posted

技术标签:

【中文标题】更改 android studio 中的 textview 可见性【英文标题】:Changing textview visibility in android studio 【发布时间】:2020-09-11 18:40:48 【问题描述】:

我想单击以使用 android studio 隐藏或取消隐藏文本视图。如果它是可见的,则单击一下将使其不可见。如果不可见,一键可见。

目前,只有一半的功能在工作。虽然我可以单击使 textview 不可见,但再次单击它不会使其再次可见。

这是我的代码

@Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        toDoList = new ArrayList<>();
        arrayAdapter = new ArrayAdapter<>(this, R.layout.list_view_layout, toDoList);
        listView = findViewById(R.id.id_list_view);

        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
                TextView textView = (TextView) view;

                if (textView.getVisibility() == View.VISIBLE) 
                    textView.setVisibility(View.INVISIBLE);
                
                else 
                    textView.setVisibility(View.VISIBLE);
                

            
        );

在尝试调试时,我发现 else 语句从未运行过,即使 if 条件返回 false。我错过了什么吗?

【问题讨论】:

你让它不可见......那么你在哪个视图上点击?该视图已经不可见,因此它没有检测到任何触摸,即触摸不适用于不可见视图 我同意@PraveenSP 它已经不可见了,所以从技术上讲,它在不可见时无法检测到任何手势,除非你用另一个也检测到手势但不会隐藏的视图包装它。 【参考方案1】:

从你的 onItemClick 获取 extViw 是错误的。

 TextView textView = (TextView) view;

应该是

TextView textView = (TextView) view.findViewById(R.id.yourTextView);

如果你想要不可见的视图和可点击的,使用 setAlpha(0);和 setAlpha(1);

【讨论】:

不,不可见的视图也可以点击,你的问题是视图的点击事件被其他视图拦截了。但是答案很好。

以上是关于更改 android studio 中的 textview 可见性的主要内容,如果未能解决你的问题,请参考以下文章

更改 Android Studio 中的主目录默认位置

如何安全地更改 Android Studio 中的项目名称?

Android Studio 更改一个 xml 文件中的 ID 会更改另一个文件中的 ID

更改 android studio 中的 textview 可见性

如何根据 android studio 中的微调器选择更改 imageview 视图?

无法使用 setsmallIcon 在 android studio 中更改图标