繁体   English   中英

片段未显示在Mainactivity中,在我的活动片段内容仅在我单击工具栏时显示

[英]Fragment doesn't show in Mainactivity, In my activity fragment content only show when I click on toolbar

要转到片段1,我需要获得片段2和下一个片段1.我的代码有什么问题。

这是我的片段

public class TodaysmemeFragement extends Fragment {


private RecyclerView recyclerView;
private DatabaseReference databaseReference;

private FloatingActionButton sharebutton;




@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {




  return inflater.inflate(R.layout.fragment_todaysmeme,container,false);
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

}

@Override
public void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Meme,MemeViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Meme, MemeViewHolder>(
            Meme.class,
            R.layout.meme_row,
            MemeViewHolder.class,
            databaseReference
    ) {
        @Override
        protected void populateViewHolder(MemeViewHolder viewHolder, final Meme model, final int position) {
            viewHolder.setTag(model.getTag());
            viewHolder.setDesc(model.getDesc());
            viewHolder.setImage(getActivity(),model.getImage());

            final String imageurl = model.getImage();

            View v = viewHolder.getmViews();

            FloatingActionButton f = (FloatingActionButton) v.findViewById(R.id.sharebutton);

            f.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    URL url = null;
                    Bitmap image = null;
                    try {
                        url = new URL(imageurl);
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    }



                    try {
                        image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    Intent intent = new Intent(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_TEXT, model.getDesc());
                    Uri screenshotUri = null;
                    String path = null;
                    try {
                        path = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), image, "", null);
                        screenshotUri  = Uri.parse(path);
                    } catch (Exception e) {
                        Log.d(e.getLocalizedMessage(),"dfsf");
                    }


                    intent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
                    intent.setType("image/*");
                    startActivity(Intent.createChooser(intent, "Share image via..."));

                }

            });
        }
    };

    recyclerView.setAdapter(firebaseRecyclerAdapter);

}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    getActivity().setTitle("Today's Meme");

    sharebutton = (FloatingActionButton) view.findViewById(R.id.sharebutton);

    databaseReference = FirebaseDatabase.getInstance().getReference("Today");
    recyclerView = (RecyclerView)view.findViewById(R.id.meme_list);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));


}


public static class MemeViewHolder extends RecyclerView.ViewHolder{
    View mView;
    public MemeViewHolder(View itemView)
    {
      super(itemView);
        mView = itemView;
    }

    public void setTag(String tag)
    {
        TextView post_tag = (TextView)mView.findViewById(R.id.post_tag);
            post_tag.setText(tag);
    }
    public void setDesc(String desc)
    {
     TextView post_desc = (TextView)mView.findViewById(R.id.post_desc);
        post_desc.setText(desc);
    }
    public void setImage(Context context,String image) {
        ImageView imageView = (ImageView) mView.findViewById(R.id.post_image);
        Picasso.with(context).load(image).into(imageView);

    }
    public View getmViews()
    {
        return this.mView;
    }




}
}

这是我的MainActivity

<android>
public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

DatabaseReference databaseReference;
FirebaseAuth firebaseAuth;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

     Fragment fragment;
        fragment = new TodaysmemeFragement();
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.content_main, fragment)
                .commit();




   Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    firebaseAuth = FirebaseAuth.getInstance();
    if(firebaseAuth.getCurrentUser() == null)
    {
        finish();
        startActivity(new Intent(getApplicationContext(),LoginSignupActivity.class));
    }








    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

xml没有问题。 但片段替换的东西。

添加FragmentTransaction以开始事务

 Fragment fragment;
 fragment = new TodaysmemeFragement();
 FragmentManager fragmentManager = getFragmentManager();
 FragmentTransaction ft = fragmentManager.beginTransaction();
 ft.addToBackStack(null);

 ft.replace(R.id.main_content, fragment);
 ft.commit();

毕竟,我找出了问题所在。 你要删除recyclerView.sethasFixedSize(true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM