2017-04-20 20 views
1

私が現在開発中のアプリケーションには、リサイクラビュー内にカードビューを含む2つのフラグメントがあるタブ付きビューがあります。
ここでは、カードビューの内側に、フラグメント1では表示され、フラグメント2では表示されないようにするイメージビューがあります。しかし、私はそうすることができません。
は私がcard_event内にあるRecyclerViewアダプタは -set ImageViewの異なるフラグメント内の異なる表示

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.card_event, parent, false); 
    FragmentManager manager = ((Activity)mContext).getFragmentManager(); 

    Fragment fragment1 = manager.findFragmentById(R.id.TabFragment1); 
    if(fragment1!= null){ 
     image_view.setVisibility(View.VISIBLE); 
    } 

    return new MyViewHolder(itemView); 
} 

image_view(CardView)の内側にしようとしてきたコードは、もともと目に見えないですし、私はそれがTabFragment1に見えるようにしたいです。

答えて

0

あなたのコードは完全に問題ありませんが、あなたの条件にelseブロックがありません。その理由については

Fragment fragment1 = manager.findFragmentById(R.id.TabFragment1); 
if(fragment1!= null){ 
    image_view.setVisibility(View.VISIBLE); 
} else { 
    image_view.setVisibility(View.GONE); 
} 

Fragment fragment1 = manager.findFragmentById(R.id.TabFragment1); 
if(fragment1!= null){ 
    image_view.setVisibility(View.VISIBLE); 
} 

交換してみてください - RecyclerViewまさにその名がありません - それはビューを:-Dリサイクルしたがって、ViewHolder内部で一度作成して置けば、各項目の表示、あなたはリスト内の各項目について調整することになっています。

これは、状態を入れる必要があるだけでなく、以前のバインドを修復するために設定された状態を削除/非表示することを意味します。

+0

ありがとうございますが、elseステートメントを追加するとアプリケーションが機能しなくなり、nullPointerExceptionエラーが発生しました。/ – user2940296

+0

エラーを投稿できます –

+0

質問を更新し、視認性を変更するimage_viewを初期化するコードを追加してください –

関連する問題