bar vacío Strange anteriormente fragmento en BottomNavigationView

V. Popov:

Esta es la forma en que se supone que se vea: https://i.stack.imgur.com/4bLy5.png

Esto es como se ve: https://i.stack.imgur.com/oSUjF.png

Blanca extraña space appearsen la parte superior de mi fragmenty se mueve todo abajo en un desplazamiento de su altura. Intentado todas las soluciones mencionadas en las preguntas similares, pero ninguna ayuda. No estoy usando ActionBar.

Aquí está el fragment activitycódigo:

public class SearchFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;

private OnFragmentInteractionListener mListener;

private SearchView searchView;
private RecyclerView recyclerView;
private RecyclerAdapter recyclerAdapter;

public SearchFragment() {
    // Required empty public constructor
}

/**
 * Use this factory method to create a new instance of
 * this fragment using the provided parameters.
 *
 * @param param1 Parameter 1.
 * @param param2 Parameter 2.
 * @return A new instance of fragment SearchFragment.
 */
// TODO: Rename and change types and number of parameters
public static SearchFragment newInstance(String param1, String param2) {
    SearchFragment fragment = new SearchFragment();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_navigation_search, container, false);
}

// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
    if (mListener != null) {
        mListener.onFragmentInteraction(uri);
    }
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener) {
        mListener = (OnFragmentInteractionListener) context;
    } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    searchView = getView().findViewById(R.id.searchView);
    recyclerView = getView().findViewById(R.id.myRecyclerView);

    recyclerAdapter =  new RecyclerAdapter();

    recyclerView.setLayoutManager(new LinearLayoutManager(this.getContext()));

    recyclerView.setAdapter(recyclerAdapter);
}

@Override
public void onDetach() {
    super.onDetach();
    mListener = null;
}

/**
 * This interface must be implemented by activities that contain this
 * fragment to allow an interaction in this fragment to be communicated
 * to the activity and potentially other fragments contained in that
 * activity.
 * <p>
 * See the Android Training lesson <a href=
 * "http://developer.android.com/training/basics/fragments/communicating.html"
 * >Communicating with Other Fragments</a> for more information.
 */
public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onFragmentInteraction(Uri uri);
}

código XML fragmento:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchFragment">

<SearchView
    android:id="@+id/searchView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/search_shape"
    android:iconifiedByDefault="false"
    android:queryHint="Pretrazite proizvode..."
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/myRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/searchView"
    app:layout_constraintVertical_bias="0.05" />

Esta disposición restricción tiene una etiqueta de cierre pero no aparece como aquí. Decir si necesita más código para encontrar el problema.

Gracias por adelantado.

V. Popov:

Solución encontrado!

El problema estaba en el diseño de la actividad que lleva a cabo el fragmento y la navegación. De alguna manera una propiedad de relleno superior se establece automáticamente en el valor de la altura AcitonBar.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=363482&siteId=1
Recomendado
Clasificación