Autre moyen de mettre en œuvre un tiroir coulissant désormais obsolète depuis l'api 17
Dans mon application j'ai un tiroir coulissant avec boutons image et quand on clique dessus il affiche la description de l'image et de l'info. Donc, fondamentalement, je suis seulement en utilisant un fichier XML et un fichier Java pour cela. (Mais j'ai remarqué que l'ajout de plus de imagebuttons et les mages pour afficher ça prend du temps à charger). Et maintenant que, depuis l'API 17 est déconseiller le glissement du tiroir me laisse un peu inquiet pour l'avenir de téléchargements de l'application. Maintenant, ma question est, est-il un autre moyen d'atteindre cet objectif sans l'aide coulissante tiroir ou spinner. Je n'ai pas vraiment envie de créer un xml et java fichier pour chaque image (je vais retrouver avec 100+ xml et java)
Voici mon code que j'ai en ce moment.
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iM1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:adjustViewBounds="true"/>
</RelativeLayout>
</ScrollView>
<SlidingDrawer
android:id="@+id/sD1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:content="@+id/content"
android:handle="@+id/handle">
<Button
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/icon_1" />
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/icon_background1">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/asample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/imageicon1"/>
.....
Et Java:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.campsites);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
final SlidingDrawer slider = (SlidingDrawer) findViewById(R.id.sD1);
final ImageView imageView = (ImageView) findViewById(R.id.iM1);
slider.animateOpen();
Button next = (Button) findViewById(R.id.asample);
Button next1 = (Button) findViewById(R.id.bsample);
..........
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
imageView.setImageDrawable(getResources().getDrawable(R.drawable.asample));
slider.animateClose();
}
});
next1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
imageView.setImageDrawable(getResources().getDrawable(R.drawable.bsample));
slider.animateClose();
}
});
............
Quelqu'un peut s'il vous plaît aider ou avez des suggestions sur ce qu'il faut faire?
source d'informationauteur Allrounder
Vous devez vous connecter pour publier un commentaire.
C'est un
SlidingDrawer
à partir de la gauche, c'est exact? Si oui, vous pouvez regarder dans DrawerLayout.Cela fait partie de l'Android Support Library et vous devriez être en mesure de remplacer votre XML avec ce lieu assez simplement et être compatible avec les API4
À partir de cette page, il est un exemple.
Quelques notes de la page
Surtout la différence, c'est que le
DrawerLayout
est de haut niveau et que vous mettez votre XML. Donc quelque chose comme ceci (totalement non testé):Je préfère suggérer un simple glissement de menu, que j'ai créé moi-même.
concept que j'ai utilisé
Bouton de curseur et le contenu du panneau
initialement bouton de curseur est à gauche(dans mon exemple) , lorsque vous cliquez sur elle ,elle se déplace et le volet de contenu est visible
comment je achieived ce
J'ai joué avec la marge de gauche , de sorte que lorsque vous appuyez sur le bouton de curseur du volet de contenu (masqué initialement) devient aussi large que screen_width/3 , et lorsque vous appuyez de nouveau, il se cache..
voilà mon code.
//code xml
La SlidingUpPanel de la part des gars de l'application Humain semble le meilleur chemin à droite maintenant. Vous pouvez le trouver dans: https://github.com/umano/AndroidSlidingUpPanel
J'ai trouvé les informations à ce sujet dans cet autre SOF post: vertical DrawerLayout ou SlidingPaneLayout
😀
Edit: Ce qui semble très prometteur: https://github.com/6wunderkinder/android-sliding-layer-lib
(dans la vidéo youtube semble fonctionner seulement de droite à gauche et de gauche à droite, mais si vous téléchargez le véritable démo app, vous verrez qu'il est aussi possible d'aller de bas en haut et de haut en bas)
je pense Cette est une bonne alternative.
Autant que je sache, il n'utilise pas
SlidingDrawer
et vous pouvez modifier la direction du tiroirplaine android, vous pouvez utiliser DrawerLayout.
mais je vous recommande de SlidingMenu lib ce qui a une meilleure facilité d'utilisation pour l'utilisateur et le programmeur.