Dev
Dev

Reputation: 62

How can I make the cardview's disappear?

When I click on any menu item present in the navigation drawer, the content of the menu item appears below the cards. The cards should disappear and then in their place the content of the menu items should be displayed. The contents of the menu items are written in the form of fragments. Could someone help me out in solving it? Attaching the code below...

Here is the MainActivity Java file

@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;
        }
    });
}

Here is the XML file

<?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>

Upvotes: 0

Views: 818

Answers (3)

Clerdson Juca
Clerdson Juca

Reputation: 1

val cardView = findViewById<CardView>(R.id.cardview2)
val destroyer = findViewById<ImageView>(R.id.imageView8)
destroyer.setOnClickListener {
     cardView.visibility = View.GONE
}

Upvotes: 0

Vedprakash Wagh
Vedprakash Wagh

Reputation: 3732

  1. You need to fetch ID of the CardView and store it in a variable.

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

  2. After doing that, you need to setVisibility to GONE to hide the CardView's wherever you want to.

    cardView.setVisibility(View.GONE);

  3. Whenever you setVisibility to your View, there are three options,

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

  1. You can setVisibility(View.VISIBLE) to make the CardView's or any other Views appear back.

  2. View.INVISIBLE takes up space for layout purposes, but View.GONE won't take any space.

(For some reason I'm unable to format the code to make CardView visibility to GONE.)

Upvotes: 1

apksherlock
apksherlock

Reputation: 8371

Every Android View has an ability to appear and disappear. Just use the setVisibility() in your java code and set it to View.GONE

Example:

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

cardView1.setVisibility(View.GONE)

Upvotes: 0

Related Questions