其他分享
首页 > 其他分享> > android – 添加新片段后,前一个片段元素仍处于活动状态

android – 添加新片段后,前一个片段元素仍处于活动状态

作者:互联网

用这张图片可以更好地描述我的问题.当我在第一个片段(第一个图像)上添加第二个片段(第二个图像)时,第一个片段元素(Spinner,EditText)仍处于活动状态.活动意味着触摸同一个地方我可以看到下拉列表正在下降.

我不能替换片段因为我需要回到用户离开第一个片段的相同状态.任何人都可以告诉我这是什么问题.

我正在使用广播添加第二个片段,因为它需要从baseAdapter listview调用.Code是这样的.

ListView onclick

view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) 
        {
            Log.v("TAG", "Clicked: " + itemListPogo.get(position).getitemIdplato());

            Intent i = new Intent("start.fragment.action");
            i.putExtra("plateId", itemListPogo.get(position).getitemIdplato());
            mContext.sendBroadcast(i);
        }
    });

Reveiving

    mBroadcastReceiver = new BroadcastReceiver() 
    {
        @Override
        public void onReceive(Context context, Intent intent) 
        {
            Bundle extra = intent.getExtras();
            String plateId = extra.getString("plateId");  

            Fragment fragment = new PlateDetailsFragment(DashBoardActivity.this, Integer.parseInt(plateId));
            FragmentManager fragmentManager = (DashBoardActivity.this).getFragmentManager();
            fragmentManager.popBackStack("back", FragmentManager.POP_BACK_STACK_INCLUSIVE);

            fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack(plateId).commit();
        }
    };
    this.registerReceiver(mBroadcastReceiver, new IntentFilter("start.fragment.action"));

解决方法:

有一个简单的技巧.获取顶部片段的主容器/父视图,并为其添加onClickListener.不要在onClick内做任何事情.这样,顶部的片段将捕获用户点击.希望它足够清楚.

示例 – 如果片段的布局具有Linearlayout作为父级,请在片段代码中为其指定onClickListener,方法与按钮相同.

标签:android,android-fragments,android-listfragment
来源: https://codeday.me/bug/20190528/1171407.html