Je souhaite mettre en œuvre une fonctionnalité permettant de développer un menu déroulant ou une fenêtre en faisant glisser le doigt vers le bas, puis en la réduisant en relâchant ou en faisant glisser mon doigt vers le haut sur une disposition Android, comme ceci .
Je ne sais pas comment faire ça. J'avais recherché de nombreuses plates-formes, par exemple Stack overflow, Google, GitHub, etc. Mais malheureusement, je n'ai même pas trouvé un seul exemple ou morceau de code. Si quelqu'un a une idée à ce sujet, veuillez me recommander tout matériel ou lien (s) utile (s).
Merci beaucoup!
3 Réponses :
On dirait que vous recherchez Réduire les barres d'outils . < / p>
Cela vous donnera l'aspect souhaité - la partie supérieure de votre mise en page s'agrandira lorsque vous faites défiler vers le bas et sera réduite lorsque vous faites défiler vers le haut.
Maintenant que vous savez ce que vous devez mettre en œuvre, vous pouvez trouver de nombreux guides sur le sujet comme ceci , ceci à partir de la conception du matériau et beaucoup plus.
Je pense que ce que vous voulez, c'est Vue de la feuille de fond Vous pouvez trouver différents tutoriels pour l'implémenter ici et ici
Vous pouvez utiliser l'animation pour afficher-masquer la vue de haut en bas. Voici un exemple de code:
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" android:fromYDelta="-100%" android:toYDelta="0%" > </translate>
slider_menu est votre propre mise en page que vous souhaitez afficher dans le curseur Et ci-dessous est le code pour java:
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="200" android:fromYDelta="-100%" android:toYDelta="0%" > </translate>
ici swipe_down et swipe_up sont des fichiers xml dans des dossiers anim:
swipe_up:
hiddenView = view.findViewById(R.id.hiddenView); ImageView menuIcon = view.findViewById(R.id.menu_img); menuIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { topToBottomAnimation(slider); } }); hiddenView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { hideViewAnimation(slider); } }); public void hideViewAnimation(View view) { Animation hideView = AnimationUtils.loadAnimation(mContext, R.anim.swipe_up); view.startAnimation(hideView); view.setVisibility(View.GONE); hiddenView.setVisibility(View.GONE); } public void topToBottomAnimation(View view) { Animation showView = AnimationUtils.loadAnimation(mContext, R.anim.swipe_down); view.startAnimation(showView); view.setVisibility(View.VISIBLE); hiddenView.setVisibility(View.VISIBLE); }
swipe_down:
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/menu_img" android:layout_width="@dimen/_30sdp" android:layout_height="@dimen/_30sdp" android:layout_alignParentTop="true" android:layout_margin="@dimen/_10sdp" android:tint="@color/blackColor" app:srcCompat="@drawable/ic_menu_black_24dp" /> <View android:id="@+id/hiddenView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/black_translucent" android:visibility="gone" /> <include android:id="@+id/slider" layout="@layout/slider_menu" android:layout_width="match_parent" android:layout_height="200dp" android:layout_below="@+id/menu_img" android:visibility="gone" /> </RelativeLayout>