В моем приложении 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) {
}
});
}
}