fragment 跳转另一个fragment

fragment 跳转另一个fragment

public class NoteAllFragment extends Fragment {

    NoteAllFragment noteAllFragment = this;
    CircleNoteFragment circleNoteFragment = new CircleNoteFragment();
    MyNoteFragment myNoteFragment = new MyNoteFragment();
    ListView noteall_listview;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_noteall, container, false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

    @Override
    public void onResume() {
        loadData();
        super.onResume();
    }

    private void loadData() {
        noteall_listview = getActivity().findViewById(R.id.noteall_listview);
        List<String> list = new ArrayList<>();
        DataBaseHelper dataBaseHelper = DataBaseHelper.getInstance(getContext());
        Dao<Note,Integer> notes = null;
        try {
            notes = dataBaseHelper.getDao(Note.class);
            for(Note note : notes.queryForAll()){
                 list.add(note.getTitle());
             }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ArrayAdapter<String> arrayAdapter =
                new ArrayAdapter(getContext(),android.R.layout.simple_list_item_1,list);
        noteall_listview.setAdapter(arrayAdapter);
        noteall_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                getActivity().getSupportFragmentManager()
                        .beginTransaction()
                        .hide(noteAllFragment).addToBackStack(null)
                        .show(circleNoteFragment)
                        .hide(myNoteFragment)
                        .commit();
            }
        });
    }
}

在item点击事件中,从当前fragment 到 另一个fragment 为空白,这是为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

把fragment切换中的addToBackStack(null)操作去掉,show()和hide()处理时fragment是存在的,无需添加addToBackStack(null),addToBackStack(null)一般是对replace()的操作。

  • qq_镜花水月_45 提问者 #1
    去掉了也一样,就是跳转不过去 想不明白为什么
    2018-07-23 21:09:08
  • irista23 回复 提问者 qq_镜花水月_45 #2
    你这里用的show()和hide()那之前selector点击处理也用show()和hide(),并且去掉addToBackStack(null)
    2018-07-24 09:57:03
  • qq_镜花水月_45 提问者 回复 irista23 #3
    getActivity().getSupportFragmentManager() .beginTransaction() .hide(noteAllFragment) .show(circleNoteFragment) .hide(myNoteFragment) .commit(); 老师,是这样改吗?
    2018-07-24 10:07:46
irista23 2018-07-24 10:11:33

执行onCreate()时你需要先add()进来,之后再调用show()或hide()

this.getSupportFragmentManager()
.beginTransaction()
.add(R.id.container_content,mMainFragment)
.add(R.id.container_content,mFindFragmenr)
.hide(mFindFragmenr)
.add(R.id.container_content,mMeFragment)
.hide(mMeFragment)
.commit();


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android从界面到数据存储2018版
  • 参与学习       504    人
  • 提交作业       1003    份
  • 解答问题       1044    个

本专题是专为有Java语言基础想入坑Android开发的同学们准备的。从AndroidUI基础一直到网络,数据存储,一步到位入门Android开发。如果你会Java,那就不要犹豫了~ ~

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师