마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리싸이클러뷰 관련 질문(일주일째 삽질...)1

0 추천
안녕하세요.

recyclerView 관련하여 질문 좀 드리려고 합니다. 일주일째 좀 처럼 해결을 못하겠네요....

원하는 뷰 형태는 이렇습니다.

A라는 프레그먼트(FragmentA.java)가 있고 A프레그먼트의 레이아웃(layout_fragment_a.xnl)에는 recyclerView 와 Button 이 있습니다.

recyclerView 는 어텝터를(TestAdapter.java) 연결하고 item 레이아웃(item_layout.xml)을 설정해주었습니다. item 레이아웃에는 텍스트뷰와 이미지뷰가 있습니다.

질문 1-1. 이때 프레그먼트 레이아웃에 있는 버튼 뷰를 클릭하여 recyclerView 의 item 레이아웃에 속한 view 항목중 이미지뷰를 setVisible(View.Visible) 처리하고 싶습니다.

질문 1-2. 1-1 방법이 안된다면 recyclerView의 item 레이아웃을 2개 (기본, 하단) 로 설정하고 기본만 스크롤 하단은 영역 고정 하단 영역에 뷰 클릭하여 기본 영역에 뷰 setVisible(View.Visible) 처리하고 싶습니다.

질문 2. 위 내용이 해결되면 해당 원하면 포지션에 아이템 뷰가 텍스트뷰와 이미지뷰가 있고, 이미지뷰를 클릭시 item_layout2 (EditText, button) 으로 구성된 레이아웃으로 변경되고 버튼 클릭시 다시 item_layout 으로 해당 포지션 아이템 레이아웃이 변경되게끔 하고 싶습니다

답변주시면 정말 감사하겠습니다. 관련 링크나 힌트라도 주시면 감사합니다 ㅠㅠ
익명사용자 님이 2019년 7월 19일 질문

1개의 답변

0 추천
어댑터에 리스너를 만드시고 리스너를 통해 visible를 조절하시면 됩니다

간단하게 코드를 짜보면

class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private MyListener myListener;

    private boolean hideImage;

    public void setMyListener(MyListener myListener) {

        this.myListener = myListener;

    }

 

    overrider void onBindViewHolder(VH holder, int position) {

        if(hideImage) {

            holder.image.visibillity = View.GONE

        }

        else {

            holder.image.visibillity = View.VISIBLE    

        }

        ....

    }

 

    public void hideImage(boolean hideImage) {

        this.hideImage = hideImage;

        notifiyDataSetChanged();

    }

}

 

프래그먼트에서는 버튼의 onClickListener에서 adapter.hideImage(true/false)를 하면 되겠죠
Bateaux (5,200 포인트) 님이 2019년 7월 20일 답변
...