Как я могу сделать исчезновение карты? - PullRequest
0 голосов
/ 05 июня 2019

Когда я нажимаю на любой элемент меню, присутствующий в навигационном блоке, содержимое элемента меню появляется под карточками. Карты должны исчезнуть, а затем на их месте должно отображаться содержание пунктов меню. Содержание пунктов меню написано в виде фрагментов. Может ли кто-нибудь помочь мне в ее решении? Прикрепление кода ниже ...

Вот файл MainActivity Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
    actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.drawer_open,R.string.drawer_close);
    drawerLayout.setDrawerListener(actionBarDrawerToggle);
    ////////////////////////////////////////////////////////////////////
    navigationView = (NavigationView)findViewById(R.id.navigation_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId())
            {
                case R.id.menu_profile:
                    fragmentTransaction=getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new ProfileFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Profile");
                    menuItem.setChecked(true);
                    drawerLayout.closeDrawers();
                    break;
                case R.id.menu_language:
                    fragmentTransaction=getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new LanguageFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Set Language");
                    menuItem.setChecked(true);
                    drawerLayout.closeDrawers();
                    break;
                case R.id.menu_tutorial:
                    fragmentTransaction=getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new TutorialFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Tutorial");
                    menuItem.setChecked(true);
                    drawerLayout.closeDrawers();
                    break;

            }
            return true;
        }
    });
}

Вот файл XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/drawer_layout"
    >
     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
         android:id="@+id/main_container">
        <include
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            layout="@layout/toolbar_layout"
            />
        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_fixed"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            card_view:cardCornerRadius="10dp"
            card_view:cardBackgroundColor="@android:color/background_light">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/card_fixed_heading"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Sensor Details"
                    android:fontFamily="serif"
                    android:textSize="24sp"
                    android:textStyle="bold"
                    android:textColor="#000"/>
                <TextView
                    android:id="@+id/card_fixed_details"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:padding="5dp"
                    android:text="pH Level - \nTemperature - \nMoisture -"
                    android:fontFamily="serif"
                    android:textSize="16sp"
                    android:textColor="#000"/>
            </LinearLayout>
        </android.support.v7.widget.CardView>
        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_notification"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            card_view:cardCornerRadius="10dp"
            card_view:cardBackgroundColor="@android:color/background_light">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/card_notification_heading"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Water The Plants!"
                    android:fontFamily="serif"
                    android:textSize="24sp"
                    android:layout_gravity="center"
                    android:textStyle="bold"
                    android:textColor="#000"/>
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Done"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:textStyle="bold"
                    android:fontFamily="serif"
                    android:layout_gravity="center_horizontal"
                    />
            </LinearLayout>
        </android.support.v7.widget.CardView>
        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_prediction"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            card_view:cardCornerRadius="10dp"
            card_view:cardBackgroundColor="@android:color/background_light">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/card_market_heading"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Market Prediction"
                    android:fontFamily="serif"
                    android:textSize="24sp"
                    android:layout_gravity="center"
                    android:textStyle="bold"
                    android:textColor="#000"/>
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Click Here!"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:textStyle="bold"
                    android:fontFamily="serif"
                    android:layout_gravity="center_horizontal"
                    android:onClick="marketPrediction"
                    />
            </LinearLayout>
        </android.support.v7.widget.CardView>
        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_pest"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            card_view:cardCornerRadius="10dp"
            card_view:cardBackgroundColor="@android:color/background_light">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/card_pest_heading"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Pest Details"
                    android:fontFamily="serif"
                    android:textSize="24sp"
                    android:layout_gravity="center"
                    android:textStyle="bold"
                    android:textColor="#000"/>
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Click Here!"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:textStyle="bold"
                    android:fontFamily="serif"
                    android:layout_gravity="center_horizontal"
                    android:onClick="pestDetails"
                    />
            </LinearLayout>
        </android.support.v7.widget.CardView>
     </LinearLayout>
    <android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/navigation_view"
        android:layout_gravity="start"
        app:menu="@menu/drawer_menu"
        app:headerLayout="@layout/navigation_drawer_header"
        >
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

Ответы [ 2 ]

0 голосов
/ 05 июня 2019
  1. Вам нужно получить идентификатор CardView и сохранить его в переменной.

    CardView cardView = findViewById (R.id.card_fixed);

  2. После этого вам нужно от setVisibility до GONE, чтобы скрыть CardView там, где вы хотите.

    cardView.setVisibility (View.GONE);

  3. Всякий раз, когда вы setVisibility к вашему View, есть три варианта,

View.VISIBLE, View.INVISIBLE, View.GONE.

  1. Вы можете setVisibility(View.VISIBLE), чтобы CardView или любой другой Views появился обратно.

  2. View.INVISIBLE занимает место для макета, но View.GONE не займет места.

(Почему-то я не могу отформатировать код, чтобы сделать CardView видимостью GONE.)

0 голосов
/ 05 июня 2019

Каждый Android View имеет возможность появляться и исчезать. Просто используйте setVisibility() в своем коде Java и установите View.GONE

Пример:

CardView cardView1 = findViewById(R.id.card_pest);

cardView1.setVisibility(View.GONE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...