Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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中单击GridView中的另一行时隐藏显示在上一选定行顶部的视图_Android_Android Layout_Android Fragments_Gridview - Fatal编程技术网

如何在android中单击GridView中的另一行时隐藏显示在上一选定行顶部的视图

如何在android中单击GridView中的另一行时隐藏显示在上一选定行顶部的视图,android,android-layout,android-fragments,gridview,Android,Android Layout,Android Fragments,Gridview,我有一个片段,带有自定义适配器扩展BaseAdapter,它管理GridView 我想在每个单元格的GridView和onClick的每一行上显示图像,我想在该特定图像的顶部打开一个半透明视图,该视图将显示图像细节 问题是,当我单击图像时,在图像顶部打开的半透明视图,但当我单击下一个图像时,在前一个图像上打开的半透明视图没有隐藏,它仍然显示在第一个图像上 请参阅下面的代码 我的片段 public class ProductFragment extends Fragment { Str

我有一个
片段
,带有自定义
适配器
扩展
BaseAdapter
,它管理
GridView

我想在每个单元格的
GridView
onClick
的每一行上显示图像,我想在该特定图像的顶部打开一个半透明视图,该视图将显示图像细节

问题是,当我单击图像时,在图像顶部打开的半透明视图,但当我单击下一个图像时,在前一个图像上打开的半透明视图没有隐藏,它仍然显示在第一个图像上

请参阅下面的代码

我的片段

public class ProductFragment extends Fragment {

    String ss = null;
    GridView gridView;
    ArrayList<ProductParameterBO> productlist;
    GridViewCustomAdapter gridViewCustomAdapter;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        if (savedInstanceState!=null){
            View rootView =  inflater.inflate(R.layout.empty_catalog_item,null);

            TextView configure = (TextView)rootView.findViewById(R.id.text_conf);

            configure.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent intent = new Intent(getActivity(),SplitViewActivity.class);
                    intent.putExtra("firstTab","1stTabs");
                    startActivity(intent);

                }
            });

            TextView text_here = (TextView)rootView.findViewById(R.id.text_here);
            text_here.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                }
            });

            FloatingActionButton fab = (FloatingActionButton)rootView.findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent intent = new Intent(getActivity(), EditUploadActivity.class);
                    startActivity(intent);

                }
            });

            return rootView;
        } else {
            View rootView =  inflater.inflate(R.layout.fragment_product,null);

            gridView =(GridView)rootView.findViewById(R.id.gridView);

            productlist = new ArrayList<ProductParameterBO>();

            productlist.add(new ProductParameterBO("Type","Numeric","yes","yes"));
            productlist.add(new ProductParameterBO("Typess","Numericss","yesss","yesss"));
            productlist.add(new ProductParameterBO("Typess","Numericss","yesss","yesss"));
            productlist.add(new ProductParameterBO("Typess","Numericss","yesss","yesss"));
            gridViewCustomAdapter = new GridViewCustomAdapter(getActivity(),productlist);
            gridView.setAdapter(gridViewCustomAdapter);
            gridViewCustomAdapter.notifyDataSetChanged();

            return rootView;
        }

        // return inflater.inflate(R.layout.fragment_product,null);
    }
}
公共类ProductFragment扩展了片段{
字符串ss=null;
GridView;
ArrayList产品列表;
GridViewCustomAdapter GridViewCustomAdapter;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
如果(savedInstanceState!=null){
视图根视图=充气机。充气(R.layout.empty\u catalog\u item,null);
TextView configure=(TextView)rootView.findviewbyd(R.id.text\u conf);
configure.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=new Intent(getActivity(),SplitViewActivity.class);
意向。额外(“第一个标签”、“第一个标签”);
星触觉(意向);
}
});
TextView text_here=(TextView)rootView.findViewById(R.id.text_here);
text_here.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
}
});
FloatingActionButton fab=(FloatingActionButton)rootView.findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent Intent=new Intent(getActivity(),EditUploadActivity.class);
星触觉(意向);
}
});
返回rootView;
}否则{
视图根视图=充气机。充气(R.layout.fragment\u product,null);
gridView=(gridView)rootView.findviewbyd(R.id.gridView);
productlist=新的ArrayList();
添加(新的ProductParameterBO(“类型”、“数字”、“是”、“是”));
productlist.add(新的ProductParameterBO(“Typess”、“Numericss”、“yesss”、“yesss”));
productlist.add(新的ProductParameterBO(“Typess”、“Numericss”、“yesss”、“yesss”));
productlist.add(新的ProductParameterBO(“Typess”、“Numericss”、“yesss”、“yesss”));
gridViewCustomAdapter=新的gridViewCustomAdapter(getActivity(),productlist);
setAdapter(gridViewCustomAdapter);
gridViewCustomAdapter.notifyDataSetChanged();
返回rootView;
}
//返回充气机。充气(R.layout.fragment_product,空);
}
}
我的Adater

public class GridViewCustomAdapter extends BaseAdapter {

    private List<ProductParameterBO> availList;

    private LayoutInflater inflater;

    Context context;

    public GridViewCustomAdapter(Context ctx,List<ProductParameterBO> list){
        this.context = ctx;
        this.availList = list;
    }

    @Override
    public int getCount() {
        return availList.size();
    }

    @Override
    public Object getItem(int position) {
        return availList.get(position);
    }

    @Override
    public long getItemId(int position) {
        ProductParameterBO c = availList.get(position);
        // long id = c.getTimeId();
        return 0;
    }

    @Override
    public View getView(int position,View convertView,final ViewGroup parent) {

        View row = convertView;
        final TeeTimeHolder holder;

        if (row == null){
            inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.grid_row,parent,false);
            holder = new TeeTimeHolder();
            holder.myImage =(ImageView)row.findViewById(R.id.imageView10);
            holder.name =(TextView)row.findViewById(R.id.textView47);
            holder.edit =(TextView)row.findViewById(R.id.textView49);
            holder.rl =(RelativeLayout)row.findViewById(R.id.img_ovrly);
            row.setTag(holder);
        } else {
            holder =(TeeTimeHolder)row.getTag();
        }

        holder.name.setText(availList.get(position).getParameterName());
        holder.myImage.setImageResource(R.drawable.toi);
        holder.rl.setVisibility(View.GONE);

        holder.myImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View rows = null;
                inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                rows = inflater.inflate(R.layout.image_overlay,parent,false);
                // holder.rl = (RelativeLayout)rows.findViewById(R.id.img_ovrly);
                holder.rl.setVisibility(View.VISIBLE);

            }
        });

        return row;
    }

    static class TeeTimeHolder {
        ImageView myImage;

        TextView name,edit;

        RelativeLayout rl;

        //TextView descriptions;

        /*  TextView coursefee;

        TextView viewdetils;*/
    }
}
公共类GridViewCustomAdapter扩展了BaseAdapter{
私有列表可用;
私人充气机;
语境;
公共GridViewCustomAdapter(上下文ctx,列表){
this.context=ctx;
this.availist=列表;
}
@凌驾
public int getCount(){
return availist.size();
}
@凌驾
公共对象getItem(int位置){
返回availist.get(位置);
}
@凌驾
公共长getItemId(int位置){
ProductParameterBO c=availist.get(位置);
//long id=c.getTimeId();
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、最终视图组父视图){
视图行=转换视图;
最终持票人;
if(行==null){
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
行=充气机。充气(右布局。网格_行,父,假);
保持架=新的T形计时保持架();
holder.myImage=(ImageView)row.findViewById(R.id.imageView10);
holder.name=(TextView)row.findViewById(R.id.textView47);
holder.edit=(TextView)row.findViewById(R.id.textView49);
holder.rl=(RelativeLayout)row.findViewById(R.id.img_ovrly);
row.setTag(支架);
}否则{
holder=(TeeTimeHolder)行。getTag();
}
holder.name.setText(availist.get(position.getParameterName());
holder.myImage.setImageResource(R.drawable.toi);
holder.rl.setVisibility(视图已消失);
holder.myImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
视图行=空;
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
行=充气机。充气(右布局。图像覆盖,父,假);
//holder.rl=(RelativeLayout)rows.findViewById(R.id.img_ovrly);
holder.rl.setVisibility(视图可见);
}
});
返回行;
}
静态类计时器{
图像查看我的图像;
文本视图名称,编辑;
相对寿命;
//文本视图描述;
/*TextView-coursefee;
文本视图视图细节*/
}
}
我的XML布局网格\u row.XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView10"
        android:src="@drawable/toi"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Image Name"
        android:id="@+id/textView47"
        android:layout_below="@+id/imageView10"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Edit"
        android:id="@+id/textView49"
        android:layout_below="@+id/textView47"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="10dp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/img_ovrly"
        android:background="@color/opacity">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/mail"
            android:layout_marginTop="10dp"
            android:id="@+id/image_i"
            android:layout_centerHorizontal="true"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Title :"
            android:id="@+id/text_ttle"
            android:layout_below="@+id/image_i"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="20dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_ttle"
            android:text="hmmmm"
            android:layout_below="@+id/image_i"
            android:layout_marginTop="20dp"
            android:textColor="#6ec6c5"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dimensions :"
            android:id="@+id/text_dimen"
            android:layout_below="@+id/text_ttle"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_dimen"
            android:text="32*23"
            android:layout_below="@+id/text_ttle"
            android:layout_marginTop="10dp"
            android:textColor="#6ec6c5"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Price :"
            android:id="@+id/text_prce"
            android:layout_below="@+id/text_dimen"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_prce"
            android:text="32*23"
            android:layout_below="@+id/text_dimen"
            android:layout_marginTop="10dp"
            android:textColor="#6ec6c5"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Color :"
            android:id="@+id/text_clr"
            android:layout_below="@+id/text_prce"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_clr"
            android:text="red,white"
            android:layout_below="@+id/text_prce"
            android:layout_marginTop="10dp"
            android:textColor="#6ec6c5"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Min. Quantity :"
            android:id="@+id/text_minq"
            android:layout_below="@+id/text_clr"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_minq"
            android:text="1000"
            android:layout_below="@+id/text_clr"
            android:layout_marginTop="10dp"
            android:textColor="#6ec6c5"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Type :"
            android:id="@+id/text_typ"
            android:layout_below="@+id/text_minq"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/text_typ"
            android:text="creamic"
            android:layout_below="@+id/text_minq"
            android:layout_marginTop="10dp"
            android:textColor="#6ec6c5"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/img_flp"
            android:background="@drawable/flip"
            android:layout_below="@+id/text_typ"
            android:layout_alignParentRight="true"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"/>

    </RelativeLayout>

</RelativeLayout>

我错过什么了吗?请帮我解决这个问题。我想要一个这样的屏幕。我打开图像上方的Translucent屏幕是否正确
        @Override 
    public View getView(int position,View convertView,final ViewGroup parent) {

        View row = convertView;
      final TeeTimeHolder holder;
        if (row == null){
            inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.grid_row,parent,false);
            holder = new TeeTimeHolder();
            holder.myImage =(ImageView)row.findViewById(R.id.imageView10);
            holder.name =(TextView)row.findViewById(R.id.textView47);
            holder.edit =(TextView)row.findViewById(R.id.textView49);
            holder.rl =(RelativeLayout)row.findViewById(R.id.img_ovrly);
            row.setTag(holder);
        } 
        else { 
            holder =(TeeTimeHolder)row.getTag();
        } 


        holder.name.setText(availList.get(position).getParameterName());
        holder.myImage.setImageResource(R.drawable.toi);
        holder.rl.setVisibility(View.GONE);

        holder.myImage.setOnClickListener(new View.OnClickListener() {
            @Override 
            public void onClick(View v) {
                View rows = null;
                inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                rows = inflater.inflate(R.layout.image_overlay,parent,false);
               // holder.rl = (RelativeLayout)rows.findViewById(R.id.img_ovrly); 
               // holder.rl.setVisibility(View.VISIBLE);
       for(int i=0;i<availList.size();i++){
            if(i!=position){
       availList.get(i).flag=false;
             }
          }
  availList.get(position).flag=true;

        } 
    }); 

    if(availList.get(i).flag){
      holder.rl.setVisibility(View.VISIBLE);
      }else{
      holder.rl.setVisibility(View.INVISIBLE);
          }
    return row;
} 
boolean mInformationViewVisible = false;

public void setInformationViewVisible(boolean visible) {
    mInformationViewVisible = visible;
}

public boolean isInformationViewVisible() {
    return mInformationViewVisible;
}
@Override 
public View getView(int position,View convertView,final ViewGroup parent) {
    ...

    holder.myImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for(int itemPosition = 0; itemPosition < availList.size(); itemPosition++) {
                if(itemPosition != position){
                    availList.get(itemPosition)
                        .setInformationViewVisible(false);
            }

            availList.get(itemPosition).setInformationViewVisible(true);
        }
    });

    if (currentItem.isInformationViewVisible()) {
        holder.rl.setVisibility(View.VISIBLE);
    } else {
        holder.rl.setVisibility(View.GONE);
    }

    ...
}