Android 如何从片段中隐藏Recycleview的行项目
我有一个片段类,它使用Recycleview显示文本和图像列表。 如何访问Recycleview行项目并将自定义文本设置为任何Textview或从fragment类隐藏所需的Textview 这是我的布局Android 如何从片段中隐藏Recycleview的行项目,android,android-fragments,fragment,Android,Android Fragments,Fragment,我有一个片段类,它使用Recycleview显示文本和图像列表。 如何访问Recycleview行项目并将自定义文本设置为任何Textview或从fragment类隐藏所需的Textview 这是我的布局 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:paddingBottom="4dp"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:paddingTop="4dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none" />
<include
android:id="@+id/include_tag"
layout="@layout/row_item"/>
</FrameLayout>
但它不起作用。文本视图仍然可见
请帮忙。提前感谢。您必须有一个自定义的ViewHolder,它应该扩展RecyclerView.ViewHolder。在ViewHolder中,您可以链接行项目,并且可以访问行布局中的所有视图。 您的自定义ViewHolder看起来像:
public static class MyViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public TextView textView;
public MyViewHolder(TextView v) {
super(v);
textView = v;
//Note: To set custom text
textView.setText("My custom text");
//Note: To hide TextView remove comment from below line
//textView.setVisibility(View.GONE);
}
}
上面的代码将示例ViewHolder显示为MyViewHolder,您可以在其中访问视图。
如果将父布局传递给MyViewHolder而不是传递TextView,则可以使用v.findViewById(R.id.xxx)查找子视图
您的适配器应包含以下类似代码:
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
...
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
在上面的代码片段中,通过传递视图TextView创建MyViewHolder的实例。您可以通过行布局传递案例中的父布局及其相对值
使用此ViewHolder可在视图上执行任何操作,如将自定义文本设置为TextView或根据需要隐藏TextView
要参考完整的示例,您可以遵循android文档或单击
要实现ViewHolder和fragment之间的通信,可以使用接口
谢谢大家! 尝试这样做:
rowview = inflater.inflate(R.layout.row_item, container, false);
mhideText = (TextView)rowview.findViewById(R.id.flower_details);
mhideText.setVisibility(View.INVISIBLE);
这样做:text查看mhideText;mhideText=(TextView)view.findViewById(R.id.flower\u详细信息);然后是mhideText.setText(“此文本来自行项目”),您的解决方案与我尝试的解决方案有什么不同;v=充气机充气(R.layout.row_项目,空);extView-mhideText;mhideText=(TextView)view.findViewById(R.id.flower\u详细信息);然后是mhideText.setText(“此文本来自行项”);返回v<代码>mhideText=(TextView)view.findViewById(R.id.flower\u详细信息)你应该使用
视图
对象我已经尝试过了,但没有成功,后来我在一些论坛上使用了这个解决方案,但仍然没有成功。Patel它没有工作,文本视图仍然可见。好吧,肯定还有其他问题。将行项目内容转移到主片段xml文件怎么样?也许这会让它起作用
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
...
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
rowview = inflater.inflate(R.layout.row_item, container, false);
mhideText = (TextView)rowview.findViewById(R.id.flower_details);
mhideText.setVisibility(View.INVISIBLE);