Домашний макет не работает при использовании меню навигационной панели в Android - PullRequest
0 голосов
/ 12 апреля 2020

Чего я добиваюсь, так это того, чтобы при открытии приложения оно открывалось в окне рециркулятора (это домашняя страница) с потрясающим изображением, а затем в меню навигации, которое имеет несколько параметров, одно из которых - вернуть программу обратно в окно. домашний экран просмотра переработчика. Кроме того, режим просмотра, меню Fab и Nav работают нормально самостоятельно

Но, приложение продолжает падать после установки на устройстве с текущим кодом, есть в коде нет ошибок, и если я включу MainActivity2 в саму MainActivity1 и объединю файлы xml, я смогу только просматривать представление Recyler, но оно не работает.

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

Спасибо за помощь,

Вот код:

1.MessageFragment. java

package com.example.third;

import android.os.Bundle;
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;

public class MessageFragment extends Fragment {
   @Nullable
   @Override
   public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       return inflater.inflate(R.layout.fragment_message,container,true);
   }
}

2.MainActivity. java

package com.example.third;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.navigation.NavigationView;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
   private FloatingActionButton fab_main, fab1_mail, fab2_share;
   private Animation fab_open, fab_close, fab_clock, fab_anticlock;
   TextView textview_mail, textview_share;

   Boolean isOpen = false;
   private DrawerLayout drawer;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       Toolbar toolbar = findViewById(R.id.toolbar);
       setSupportActionBar(toolbar);

       drawer = findViewById(R.id.drawer_layout);
       NavigationView navigationView = findViewById(R.id.nav_view);
       navigationView.setNavigationItemSelectedListener(this);

       ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
               R.string.navigation_drawer_open, R.string.navigation_drawer_close);
       drawer.addDrawerListener(toggle);
       toggle.syncState();

       if (savedInstanceState == null) {
           Intent intent = new Intent(getApplicationContext(),MainActivity2.class);
           startActivity(intent);
       }
       fab_main = findViewById(R.id.fab);
       fab1_mail = findViewById(R.id.fab1);
       fab2_share = findViewById(R.id.fab2);
       fab_close = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fab_close);
       fab_open = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fab_open);
       fab_clock = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_fab_clock);
       fab_anticlock = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_fab_anticlock);

       textview_mail = (TextView) findViewById(R.id.textview_mail);
       textview_share = (TextView) findViewById(R.id.textview_share);

       fab_main.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {

               if (isOpen) {

                   textview_mail.setVisibility(View.INVISIBLE);
                   textview_share.setVisibility(View.INVISIBLE);
                   fab2_share.startAnimation(fab_close);
                   fab1_mail.startAnimation(fab_close);
                   fab_main.startAnimation(fab_anticlock);
                   fab2_share.setClickable(false);
                   fab1_mail.setClickable(false);
                   isOpen = false;
               } else {
                   textview_mail.setVisibility(View.VISIBLE);
                   textview_share.setVisibility(View.VISIBLE);
                   fab2_share.startAnimation(fab_open);
                   fab1_mail.startAnimation(fab_open);
                   fab_main.startAnimation(fab_clock);
                   fab2_share.setClickable(true);
                   fab1_mail.setClickable(true);
                   isOpen = true;
               }

           }
       });


       fab2_share.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {

               Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show();

           }
       });

       fab1_mail.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               Toast.makeText(getApplicationContext(), "Email", Toast.LENGTH_SHORT).show();

           }
       });

   }

   @Override
   public boolean onNavigationItemSelected(@NonNull MenuItem item) {
       switch (item.getItemId()) {
           case R.id.nav_message:
               Intent intent = new Intent(getApplicationContext(),MainActivity2.class);
               startActivity(intent);
               break;
           case R.id.nav_chat:
               getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                       new ChatFragment()).commit();
               break;
           case R.id.nav_profile:
               getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                       new ProfileFragment()).commit();
               break;
           case R.id.nav_share:
               Toast.makeText(this, "Share", Toast.LENGTH_SHORT).show();
               break;
           case R.id.nav_send:
               Toast.makeText(this, "Send", Toast.LENGTH_SHORT).show();
               break;
       }

       drawer.closeDrawer(GravityCompat.START);
       return true;
   }

   @Override
   public void onBackPressed() {
       if (drawer.isDrawerOpen(GravityCompat.START)) {
           drawer.closeDrawer(GravityCompat.START);
       } else {
           super.onBackPressed();
       }
   }
}

3.fragment_message . 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"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   app:cardElevation="8dp"
   android:clipToPadding="false"
   tools:context=".MainActivity">

   <androidx.recyclerview.widget.RecyclerView
       android:id="@+id/recyclerView"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="#F7F7F7"
       android:padding="4dp"
       android:scrollbars="vertical" />


   <TextView
       android:id="@+id/textview_share"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom="true"
       android:layout_marginStart="88dp"
       android:layout_marginLeft="88dp"
       android:layout_marginTop="88dp"
       android:layout_marginEnd="86dp"
       android:layout_marginRight="86dp"
       android:layout_marginBottom="115dp"
       android:padding="8dp"
       android:text="Add Item"
       android:textColor="#4CAF50"
       android:visibility="invisible" />

   <com.google.android.material.floatingactionbutton.FloatingActionButton
       android:id="@+id/fab2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom="true"
       android:layout_marginEnd="24dp"
       android:layout_marginRight="24dp"
       android:layout_marginBottom="161dp"
       android:background="?android:attr/selectableItemBackground"
       android:clickable="true"
       android:elevation="16dp"
       android:focusable="true"
       android:src="@drawable/ic_toys_black_24dp"
       android:visibility="invisible"
       app:backgroundTint="#ffffff"
       app:pressedTranslationZ="12dp" />


   <TextView
       android:id="@+id/textview_mail"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom="true"
       android:layout_marginEnd="86dp"
       android:layout_marginRight="86dp"
       android:layout_marginBottom="170dp"
       android:padding="8dp"
       android:text="Add Offset"
       android:textColor="#4CAF50"
       android:textSize="15dp"
       android:visibility="invisible" />

   <com.google.android.material.floatingactionbutton.FloatingActionButton
       android:id="@+id/fab1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom="true"
       android:layout_marginStart="24dp"
       android:layout_marginLeft="24dp"
       android:layout_marginTop="24dp"
       android:layout_marginEnd="24dp"
       android:layout_marginRight="24dp"
       android:layout_marginBottom="105dp"
       android:background="?android:attr/selectableItemBackground"
       android:clickable="true"
       android:elevation="16dp"
       android:focusable="true"
       android:src="@drawable/ic_lightbulb_outline_black_24dp"
       android:visibility="invisible"
       app:backgroundTint="#ffffff"
       app:pressedTranslationZ="12dp" />

   <com.google.android.material.floatingactionbutton.FloatingActionButton
       android:id="@+id/fab"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom="true"
       android:layout_marginStart="24dp"
       android:layout_marginLeft="24dp"
       android:layout_marginTop="24dp"
       android:layout_marginEnd="24dp"
       android:layout_marginRight="24dp"
       android:layout_marginBottom="24dp"
       android:background="?android:attr/selectableItemBackground"
       android:clickable="true"
       android:elevation="14dp"
       android:focusable="true"
       android:src="@drawable/ic_add_black_24dp"
       android:visibility="visible"
       app:backgroundTint="#ffffff"
       app:pressedTranslationZ="12dp" />

</RelativeLayout>

4.activity_main. xml


<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
    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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity"
    tools:openDrawer="start">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="#4CAF50"
            android:elevation="4dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_menu" />

</androidx.drawerlayout.widget.DrawerLayout>
...