Как сделать gridView выпадающим меню? - PullRequest
0 голосов
/ 02 мая 2020

В моем приложении Android я хочу сделать выпадающий список gridView, и для этого я использовал несколько textView вместе с одним gridView, и onClick из этих textViews Я изменяю содержимое gridView и сделав его видимым ниже, нажал textView. Мое приложение работает нормально, но проблема, если пользователь нажимает на textView1, оно будет работать нормально, и после нажатия textView1, если пользователь нажимает на textView2, он должен дважды щелкнуть по нему, чтобы сделать gridView видимым. Я хочу, чтобы он был более плавным и работал в один клик.

Вот мой XML код активности:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/b_white">
    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/adViewSele">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/nNotches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/nNotches"
            android:textColor="@color/f_black"
            android:textSize="22sp"
            android:drawableEnd="@drawable/ic_action_name"
            android:onClick="nNonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"
            />
        <RelativeLayout
            android:id="@+id/rl1"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

        <TextView
            android:id="@+id/sNotches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/sNotches"
            android:textColor="@color/f_black"
            android:textSize="22sp"
            android:drawableEnd="@drawable/ic_action_name"
            android:onClick="sNonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"
            />
        <RelativeLayout
            android:id="@+id/rl2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <TextView
            android:id="@+id/bNotches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/bNotches"
            android:textColor="@color/f_black"
            android:textSize="22sp"
            android:drawableEnd="@drawable/ic_action_name"
            android:onClick="bNonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"/>
        <RelativeLayout
            android:id="@+id/rl3"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

        <TextView
            android:id="@+id/spNotches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/spNotches"
            android:textColor="@color/f_black"
            android:textSize="22sp"
            android:drawableEnd="@drawable/ic_action_name"
            android:onClick="spNonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"/>
        <RelativeLayout
            android:id="@+id/rl6"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

        <TextView
            android:id="@+id/pNotches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/pNotches"
            android:textColor="@color/f_black"
            android:textSize="22sp"
            android:drawableEnd="@drawable/ic_action_name"
            android:onClick="pNonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"/>
        <RelativeLayout
            android:id="@+id/rl4"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

        <TextView
            android:id="@+id/p2Notches"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/pNotchesT"
            android:textColor="@color/f_black"
            android:textSize="22sp"

            android:drawableEnd="@drawable/ic_action_name"

            android:onClick="p2NonClick"
            android:gravity="center|start"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="15dp"
            android:paddingBottom="15dp"
            android:focusable="true"
            android:clickable="true"
            android:background="@drawable/frame2"
            android:layout_marginTop="-1px"/>
        <RelativeLayout
            android:id="@+id/rl5"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </RelativeLayout>

            <GridView
                android:id="@+id/gridView"
                android:layout_width="match_parent"
                android:layout_height="220dp"
                android:numColumns="4"
                android:visibility="gone"
                android:stretchMode="columnWidth"
                android:nestedScrollingEnabled="true"
                />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAlignment="center"
            android:text="Double tap if not opens"
            android:textSize="15sp"
            />
    </LinearLayout>

    </androidx.core.widget.NestedScrollView>
</RelativeLayout>

И это мое занятие java код:

package com.design.notch.notchdesign;

import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.appcompat.app.AppCompatActivity;

import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.AdapterView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class DesignSelection extends AppCompatActivity {
    GridView gridView;
    RelativeLayout rl1,rl2,rl3,rl4,rl5,r16;
    private AdView mAdViewSele;
    SharedPreferences sharedPreferences;
    boolean open;
    int vPos;
    int space;
    String holder;
    int [] designs   = {R.drawable.es,R.drawable.hole,R.drawable.ipx,R.drawable.op6,R.drawable.op7,R.drawable.pix,R.drawable.punch,R.drawable.spun};
    int [] designs1  = {R.drawable.arc,R.drawable.cap,R.drawable.man,R.drawable.reactor,R.drawable.win,R.drawable.wond,R.drawable.wond2,
                        R.drawable.spidy,R.drawable.supe,R.drawable.puni};
    int [] designs2  = {R.drawable.bat_r,R.drawable.bat,R.drawable.bat_1,R.drawable.bat_2,R.drawable.bat_3,R.drawable.bat_4,
                        R.drawable.bat_5,R.drawable.bat_6,R.drawable.bat_7,R.drawable.bat_8,R.drawable.bat_9,R.drawable.bat_10};
    int [] designs3  = {R.drawable.eagle,R.drawable.fire,R.drawable.hair,R.drawable.lineart,R.drawable.mustach,R.drawable.paw,R.drawable.pumkin,
                        R.drawable.seq,R.drawable.trin,R.drawable.pill,R.drawable.oval};
    int [] designs4  = {R.drawable.circle,R.drawable.circle1,R.drawable.circle2,R.drawable.circle3,R.drawable.circle4,R.drawable.circle5,R.drawable.circle6,
                        R.drawable.circle7,R.drawable.circle8,R.drawable.circle9,R.drawable.circle10,R.drawable.circle11};
    int [] designs5  = {R.drawable.punch1,R.drawable.punch2,R.drawable.punch3,R.drawable.punch4,R.drawable.punch5,R.drawable.punch6,R.drawable.punch7,
                        R.drawable.punch8};
    int [] border = {R.drawable.frame,R.drawable.frame,R.drawable.frame,R.drawable.framevid,R.drawable.framevid,R.drawable.framevid,R.drawable.framevid,R.drawable.framevid,
                    R.drawable.framevid,R.drawable.framevid,R.drawable.framevid,R.drawable.framevid,R.drawable.framevid};

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

        rl1 = findViewById(R.id.rl1);
        rl2 = findViewById(R.id.rl2);
        rl3 = findViewById(R.id.rl3);
        rl4 = findViewById(R.id.rl4);
        rl5 = findViewById(R.id.rl5);
        r16 = findViewById(R.id.rl6);

        gridView = findViewById(R.id.gridView);

    }

    public void nNonClick(View view) {
        if (open) {

            designInsert(designs, border);

            if (gridView.getParent() != null) {
                ((ViewGroup) gridView.getParent()).removeView(gridView);
            }
            rl1.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 100;
            open = false;
        }
        else {
            rl1.removeView(gridView);
            open = true;
        }
    }
    public void sNonClick(View view) {
        if (open){

            designInsert(designs1, border);

            if (gridView.getParent() != null){
                ((ViewGroup)gridView.getParent()).removeView(gridView);
            }
            rl2.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 200;
            open = false;
            
        }
        else {
            rl2.removeView(gridView);
            open = true;
        }
    }
    public void bNonClick(View view) {

        if (open){

            designInsert(designs2, border);

            if (gridView.getParent() != null){
                ((ViewGroup)gridView.getParent()).removeView(gridView);
            }
            rl3.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 300;
            open = false;
        }
        else {
            rl3.removeView(gridView);
            open = true;
        }
    }
    public void pNonClick(View view) {
        if (open){

            designInsert(designs4, border);

            if (gridView.getParent() != null){
                ((ViewGroup)gridView.getParent()).removeView(gridView);
            }
            rl4.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 500;
            open = false;
        }
        else {
            rl4.removeView(gridView);
            open = true;
        }
    }
    public void p2NonClick(View view) {
        if (open){

            designInsert(designs5, border);

            if (gridView.getParent() != null){
                ((ViewGroup)gridView.getParent()).removeView(gridView);
            }
            rl5.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 600;
            open = false;
        }
        else {
            rl5.removeView(gridView);
            open = true;
        }
    }
    public void spNonClick(View view) {
        if (open){

            designInsert(designs3, border);

            if (gridView.getParent() != null){
                ((ViewGroup)gridView.getParent()).removeView(gridView);
            }
            r16.addView(gridView);
            gridView.setVisibility(View.VISIBLE);
            space = 400;
            open = false;
        }
        else {
            r16.removeView(gridView);
            open = true;
        }
    }

    public void designInsert( int [] mDesigns, int [] mBorder){
        sharedPreferences = getSharedPreferences("ON", Context.MODE_PRIVATE);
        CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), mDesigns1, mBorder);
        gridView.setAdapter(customAdapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(final AdapterView<?> parent, View view, final int position, long id) {

            }
        });
    }



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