在Android Studio中为片段添加页面标题和后退按钮

yruzcnhs  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(180)

我已经从我的片段和UI的图像粘贴代码。我如何用标题'关于'替换应用程序标题以及添加一个返回箭头,这样用户就可以返回到上一个屏幕。

  1. import android.content.Context;
  2. import android.content.Intent;
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.TextView;
  9. import androidx.appcompat.app.AppCompatActivity;
  10. import androidx.fragment.app.Fragment;
  11. import com.milople.fajralarm.R;
  12. import java.util.Objects;
  13. public class AboutFragment extends Fragment {
  14. TextView lbllink;
  15. View view;
  16. Context ctx;
  17. @Override
  18. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  19. Bundle savedInstanceState) {
  20. // Inflate the layout for this fragment
  21. ctx=getActivity();
  22. view= inflater.inflate(R.layout.fragment_about, container, false);
  23. lbllink=view.findViewById(R.id.lbllink);
  24. lbllink.setOnClickListener(v -> {
  25. Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("https://thehalallife.co.uk/"));
  26. startActivity(intent);
  27. });
  28. Objects.requireNonNull(((AppCompatActivity) requireActivity()).getSupportActionBar()).setSubtitle("");
  29. return view;
  30. }
  31. } ```
  32. [screenshot of UI][2]
  33. [2]: https://i.stack.imgur.com/BZ83X.png

字符串

sc4hvdpw

sc4hvdpw1#

Activity设置CustomAppBar和Title以显示标题文本,Every fragment使用AndroidViewModel将片段标题传递给Activity,并在添加新片段时使用Appbar标题设置标题,或按下后退键以完成任何片段
1.将每个片段标题传递给Activity,使用

  1. viewModel.currentFragment("Cart");

字符串
1.将每个片段标题传递给Activity,使用

  1. public var pFrgment = MutableLiveData<String>()
  2. fun currentFragment(fragment: String) {
  3. pFrgment.value=fragment
  4. }


3.获取当前片段标题并设置AppBar标题的活动

  1. viewModel.pFrgment.observe(this, Observer {
  2. pFrgment= it
  3. binding.btntitleBarProduct.text= pFrgment
  4. }


1.活动onBackPress弹出片段(如果需要)

  1. override fun onBackPressed() {
  2. val count = supportFragmentManager.backStackEntryCount
  3. if (count == 0) {
  4. super.onBackPressed();
  5. //additional code
  6. } else {
  7. getSupportFragmentManager().popBackStack();
  8. }
  9. }

展开查看全部

相关问题