Не видно элементов в фрагменте - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в Android Stud ios, и я работаю над приложением, используя фрагменты. Мой код в порядке, и сборка прошла успешно, но основной фрагмент не показывает некоторые текстовые представления и кнопки, объявленные в InfosFragment. xml. MainActivity может переключаться между фрагментами с контейнером. Я не знаю, что попробовать.

Fragment_infos. xml

```    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">

    <TextView
        android:id="@+id/infos"
        android:layout_width="197dp"
        android:layout_height="100dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="-5dp"
        android:layout_marginTop="-4dp"
        android:layout_marginEnd="219dp"

        android:layout_marginBottom="634dp"
        android:text="@string/resInfos"
        android:textSize="30sp" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="686dp"
        android:contentDescription="@string/cnt"
        app:srcCompat="@drawable/pas_info" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        ...
        android:background="@color/colorPrimaryDark"
        android:text="@string/resTitreInformations"
        android:textSize="24sp"
        android:textStyle="bold"
        android:visibility="visible" />

    <Button
        android:id="@+id/endButton"
        android:layout_width="288dp"
        android:layout_height="38dp"
        ...
        android:onClick="terminer"
        android:text="@string/resBoutonFin"
        android:textColor="@android:color/holo_red_dark"
        android:textStyle="bold"
        android:visibility="visible" />    
```

infosFragment. java

```    public class InfosFragment extends Fragment
{
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
    {
        return inflater.inflate(R.layout.fragment_infos, container, false);
    }
    @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState)
    {
        Button bouton = (Button) getView().findViewById(R.id.endButton);
        bouton.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                terminer();
            }
        });
    }
    public void terminer()
    {
        System.exit(0);
    }
}    ```

MainActivity. java

```    package com.example.vlcapplicationvendeur;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.os.Bundle;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       /*if(savedInstanceState.isEmpty())
        {
            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
        }*/
        // création du switcher entre deux fragments
        BottomNavigationView bottomNv = findViewById(R.id.bottom_nav);
        bottomNv.setOnNavigationItemSelectedListener(navListener);

    }

    private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener()
    {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem)
        {
            Fragment selectedFragment = null;

            switch (menuItem.getItemId())
            {
                case R.id.nav_infos:
                    selectedFragment = new InfosFragment();

                break;

                case R.id.nav_avis:
                    selectedFragment = new AvisFragment();

                break;

                case R.id.nav_tendance:
                    selectedFragment = new TendanceFragment();

                    break;
            }
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();

            return true;
        }
    };

}    ```

что я вижу то, что я хочу видеть

1 Ответ

0 голосов
/ 07 апреля 2020

Я думаю, что ваш макет не отображается из-за некоторых атрибутов, которые вы определили в TextView:

  android:layout_alignParentTop="true"
  android:layout_alignParentBottom="true"

Вместо этого вы можете попробовать LinearLayout, а затем перейти к RelativeLayout.

...