Закусочная в Android не отображается

#java #android #android-snackbar

Вопрос:

Я использую подход с несколькими фрагментами одного действия в своем приложении, и я хотел бы отобразить закусочную (вместо того, чтобы отображать тост, что я сделал без каких-либо проблем).

Вот код фрагмента, в котором я хотел бы, чтобы закусочная отображалась после нажатия кнопки:

 package com.example.td.bapp;  import android.app.Activity;  import android.os.Bundle;  import android.util.Log;  import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.example.td.bapp.databinding.FragmentItemBinding; import com.example.td.bapp.R; import com.google.android.material.snackbar.Snackbar;    public class FR_Item extends Fragment implements View.OnClickListener {      @Override  public void onCreate(@Nullable Bundle savedInstanceState) {  super.onCreate(savedInstanceState);    }   @Nullable   private FragmentItemBinding binding;  @Override  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {   binding = FragmentItemBinding.inflate(inflater, container, false);    /*  Set onClickListeners to the buttoms  */   binding.orderingButton.setOnClickListener(this);    return binding.getRoot();   }   public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {  super.onViewCreated(view, savedInstanceState);     }   @Override  public void onClick(View view) {   if(view.getId() == R.id.ordering_button) {   showSnackBar(getActivity(), getString(R.string.message_orderSubmittedSuccessfully));   }    }    public void onDestroyView() {  super.onDestroyView();  binding = null;  }   public void showSnackBar(Activity activity, String message){  /*  1st try  */  View rootView = activity.getWindow().getDecorView().findViewById(android.R.id.content);  Log.e("LogTag", "showSnackbar - Try 1");  Snackbar.make(rootView, message, Snackbar.LENGTH_LONG).show();    /*  2nd try  */    Log.e("LogTag", "showSnackbar - Try 2");  Snackbar.make(activity.findViewById(R.id.mainActivityLayout), message, Snackbar.LENGTH_LONG).show();  } }  

Я попробовал два способа, которые рекомендуются здесь: [Snack bar not displayed][1] . В обоих случаях showSnackBar вызывается метод (я могу проверить это из-за тега журнала), но в приложении не отображается текст. R.id.mainActivityLayout это идентификатор ограничения моей основной деятельности (во 2-й попытке), и android.R.id.content я понятия не имею, что это такое (в 1-й попытке). Я просто взял это из принятого ответа Stackoverflow. Я также попытался заменить его этим (с 1 — й попытки) View rootView = activity.getWindow().getDecorView().findViewById(R.id.mainActivityLayout);

Во всех 3 случаях результат один и тот же. Там нет видимой панели закусок и нет сообщения об ошибке (даже в автоматически созданных сообщениях об ошибках LogCat). У вас есть какие-нибудь идеи, в чем проблема и как ее решить?

Комментарии:

1. Ты пробовал binding.getRoot() вместо rootView этого ?

2. @hata: Спасибо за ваш комментарий, хата. Я только что попробовал предложенный вами код, но никаких изменений нет. Панель закусок не отображается (хотя метод выполнен), и сообщения об ошибке нет.

3. можете ли вы добавить фрагмент кода ошибки ? потому что это странно, я просто использую фрагмент кода функции showSnackBar, он отлично работает.

4. @MaulikTogadiya: Спасибо за ваш комментарий. Как указано в вопросе, ни в одном журнале регистрации нет кода ошибки и никакой информации об этой проблеме. Тем не менее, Закусочная не отображается.

5. В моем подходе с несколькими фрагментами с одним действием я использую нижнюю панель навигации в активности singel (которая отображается затем в самом фрагменте). Возможно ли, что эта панель навигации по нижней части каким-то образом накладывается на закусочную?