3 votes

Projet Android bouton de navigation fragment d'activité marge supérieure

Je suis un débutant dans le développement Android. En ce moment, j'ai besoin de supprimer la marge supérieure représentée dans l'image ci-dessous. marge du fragment en haut

Le projet a 3 fichiers pour présenter la mise en page.

fragment_dashboard.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:background="#153091">

    <TextView
        android:id="@+id/text_dashboard"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:textAlignment="center"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

DashboardFragment.kt

package com.luismakeapp.myapplication.ui.dashboard

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.view.marginTop
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import com.luismakeapp.myapplication.R

class DashboardFragment : Fragment() {

    private lateinit var dashboardViewModel: DashboardViewModel

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        dashboardViewModel =
            ViewModelProviders.of(this).get(DashboardViewModel::class.java)
        val root = inflater.inflate(R.layout.fragment_dashboard, container, false)
        val textView: TextView = root.findViewById(R.id.text_dashboard)
        dashboardViewModel.text.observe(this, Observer {
            textView.text = it
        })

        return root
    }
}

DashboardViewModel.kt

package com.luismakeapp.myapplication.ui.dashboard

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class DashboardViewModel : ViewModel() {

    private val _text = MutableLiveData<String>().apply {
        value = "This is dashboard Fragment"
    }
    val text: LiveData<String> = _text
}

Quel fichier d'édition permet de modifier la mise en page et de supprimer la marge représentée dans l'image ci-dessus ?

Merci.

3voto

DareDeviL Points 286

Essayez d'enlever android:paddingTop="?attr/actionBarSize" de la disposition du conteneur parent de l'activité qui contient le fragment.

0voto

João Martins Points 197

Votre question est un peu confuse. Essayez de jeter un coup d'oeil à Comment poser une bonne question ?

Bref, avez-vous vérifié votre activité ? Je suppose que vous utilisez un fragment à l'intérieur d'une activité. Je vous suggère donc de vérifier la disposition de votre activité.

Si vous ne le faites pas encore, je vous recommande vivement de le faire. Essayez d'ajouter par exemple un FrameLayout à l'intérieur de votre MainActivity et le nommer fragment_container . Assurez-vous que vous n'ajoutez pas de marges et que vous définissez tous vos critères de sélection. ConstraintLayout Les contraintes de l'entreprise à Top , Fond , Début et Fin avec match_parent .

Après cela, vous pouvez utiliser vos options de menu pour passer d'un fragment à l'autre comme suit :

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

Vous pouvez trouver plus d'informations sur FragmentTransaction ici .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X