为了账号安全,请及时绑定邮箱和手机立即绑定

单击不同片段上的视图时如何触发“BottomSheet”展开?

单击不同片段上的视图时如何触发“BottomSheet”展开?

白猪掌柜的 2022-05-21 20:48:18
我正在研究 NavigationDrawer Activity。我还有一个由导航打开的选项卡式片段。我在其中一个选项卡中有一个 RecyclerView。我已将 RecyclerView 的视图设置为听点击。在 NavigationDrawer 的 MainActivity 中,我填充了 BottomSheet,以便它在整个导航中可见。我在底部表中有一个 textView。现在我想更改 textView(在底部表中)的内容,以及从 RecyclerView(或 ViewHolder)单击的视图的标题/描述。
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

据我了解,您有一个显示 RecyclerView 项目的片段。并且此片段托管在控制 BottomSheet 的 MainActivity 中。


1-您必须创建一个接口来实现从SongsListRecyclerview到的通信,MainActivity如此处


假设您创建的界面如下所示:


 interface OnSongSelectedListener{

    void onSongSelected(String title, String content);

 }

2-一旦您在SongsListRecyclerview片段中从步骤 1 中获得了您的侦听器的引用,将此侦听器传递给适配器并在项目中单击调用侦听器。所以你的 onClick 看起来像:


   @Override

    public void onClick(View v) {

        int position=getAdapterPosition();

        ListItem item=mListItems.get(position);

        Toast.makeText(mContext,"this is",Toast.LENGTH_LONG).show();

        onSongSelectedListener.onSongSelected(item.getName(),item.getDescription());

    } 

3-在MainActivity您实施的地方,OnSongSelectedListener 您将进行更改


class MainActivity extends Activity{

...

  @Override

   public void onSongSelected(String title, String content){ 

     bottomSheet.titleView.setText(title);

     bottomSheet.contentView.setText(content);

   }

}


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信