Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从片段中隐藏Recycleview的行项目_Android_Android Fragments_Fragment - Fatal编程技术网

Android 如何从片段中隐藏Recycleview的行项目

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

我有一个片段类,它使用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.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);