Ich verwende ViewPagerIndicator, um verschiedene Seiten in einer einzelnen Aktivität anzuzeigen. Ist es möglich, ein anderes Menü anzuzeigen, indem Sie auf jeder Seite die Menütaste drücken? Zum Beispiel würde Seite 1 die Menüpunkte "Hinzufügen" und "Löschen" anzeigen, während Seite 2 "Bearbeiten" und "Einstellungen" hätte. Dies sind blöde Beispiele, aber es scheint, dass das Menü erstellt wird, wenn die Aktivität instanziiert wird. Wenn ich also die MENÜ-Taste drücke, ist das Menü bereits erstellt, sodass ich die gleichen Menüpunkte bekomme, egal welche Seite gerade angezeigt wird. Ist es möglich, onCreateOptionsMenu() beim Ändern der Seite in ViewPagerIndicator auszulösen?ViewPagerIndicator mit verschiedenen Menüs für jede Seite?
Antwort
Sie müssen in Activity
außer Kraft setzen diese onPrepareOptionsMenu (Menü Menü)
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//In this you can Change Menu from different xml
// MenuItem item = menu.findItem(R.id.refresh);
// if (item != null) {
// item.setVisible (shouldIShowThisItem)
// }
//May be you can set Visibility to set for Item to show or Hide
menu.clear();
if(menu_one){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
}else{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
}
return super.onPrepareOptionsMenu(menu);
}
in dieser Methode unten Methode verwenden, können Sie Gerät, das Menü, das Sie anzeigen möchten, wenn Drücken Benutzer Menü-Taste in android.as Sie haben ViewPagerIndicator verwendet, Sie wissen, welche Seite angezeigt wird und entsprechend können Sie Ihre switch
Bedingung oder if and else if
machen.
Ich habe ein ähnliches Beispiel gemacht. für mich brauchte ich einen Seitenanzeiger (der die Anzahl der Seiten anzeigt) zum Beispiel, wenn ich 4 Seiten habe, die ich für Kreisbilder im Menü bekommen werde. Wenn ich auf Seite 3 bin, wird die dritte Seite gelb sein. Sie können dasselbe tun, aber indem Sie Ihre notwendigen Knöpfe hinzufügen.
sind hier ein einfaches exemple: // zuerst die Haupttätigkeit
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
public class AwesomePagerActivity extends Activity {
private ViewPager awesomePager;
private static int NUM_AWESOME_VIEWS = 4;
private Context cxt;
private Pager awesomeAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cxt = this;
awesomeAdapter = new Pager(NUM_AWESOME_VIEWS);
awesomeAdapter.setContext(cxt);
awesomeAdapter.setListeImages(liste_images);
awesomePager = (ViewPager) findViewById(R.id.awesomepager);
awesomePager.setAdapter(awesomeAdapter);
}
private Integer[] liste_images = {
R.drawable.tuto_step01, R.drawable.tuto_step02,
R.drawable.tuto_step03, R.drawable.tuto_step04};
}
als der Pager-Adapter:
import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class Pager extends PagerAdapter{
private static int NUM_AWESOME_VIEWS;
private Context cxt;
Integer[] liste_images;
public Pager(int i){
NUM_AWESOME_VIEWS = i;
}
public void setContext(Context cxt){
this.cxt=cxt;
}
public void setListeImages(Integer[] liste_images){
this.liste_images=liste_images;
}
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
@Override
public void finishUpdate(View arg0) {
// TODO Auto-generated method stub
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return NUM_AWESOME_VIEWS;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater)cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.layout_pager_ind, null);
ImageView tv = (ImageView) layout.findViewById(R.id.pager);
tv.setImageResource(liste_images[position]);
LinearLayout mPagesController = (LinearLayout) layout.findViewById(R.id.pages_controller);
int count = getCount();
for (int i = 0; i < count; i++)
{
if (i == position)
{
((ImageView) mPagesController.getChildAt(i)).setImageResource(R.drawable.btn_vflipper_pressed);
}
else
{
((ImageView) mPagesController.getChildAt(i)).setImageResource(R.drawable.btn_vflipper_normal);
}
}
((ViewPager) collection).addView(layout,0);
return layout;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==((View)object);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO Auto-generated method stub
}
@Override
public Parcelable saveState() {
// TODO Auto-generated method stub
return null;
}
@Override
public void startUpdate(View arg0) {
// TODO Auto-generated method stub
}
}
layout_pager_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pager"/>
<LinearLayout
android:id="@+id/pages_controller"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_vflipper_pressed">
</ImageView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_vflipper_normal">
</ImageView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_vflipper_normal">
</ImageView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_vflipper_normal">
</ImageView>
</LinearLayout>
</LinearLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/awesomepager"/>
</LinearLayout>
Sie können das Projekt AwesomePagerIndicator herunterladen die Änderungen hinzufügen, wie ich es getan habe. Viel Glück :)
- 1. Filteroptionen von Dropdown-Menüs mit verschiedenen Werten
- 2. Unterschiedlicher Hintergrund für jede Seite?
- 3. Listview mit verschiedenen Layout-Inflation für jede Zeile
- 4. ViewPagerIndicator ClassNotFoundException?
- 5. Viewpagerindicator Android Studio
- 6. Multivariate Regression mit verschiedenen Prädiktoren für jede Variable in R
- 7. Möglichkeit der Gestaltung Rasterseite mit verschiedenen Zeilen für jede Spalte
- 8. Mit vielen verschiedenen HTML-Seite mit Express
- 9. in einer Navigationsleiste in verschiedenen Menüs
- 10. ViewPagerIndicator: Mehrzeiliger Text für Tab-Titel?
- 11. erfordern neue Login für jede Seite Ansicht
- 12. ViewPagerIndicator Tabs: Icons oben Text
- 13. ViewPagerIndicator wird nicht angezeigt
- 14. Seite Steuerung mit verschiedenen Ansichten auf der Seite
- 15. Zusammenfassung für jede Seite des Berichts
- 16. jQuery-Selektor ist für jede Seite unterschiedlich
- 17. Make viewpagerindicator unten
- 18. Divider funktioniert nicht für TitlePageIndicator mit viewpagerindicator & actionbarsherlock
- 19. wie zu vermeiden, Seite jquery für jede Seite hängt
- 20. ViewPagerIndicator zeigt keinen Titeltext an
- 21. Importieren von benutzerdefinierten CSS-Stylesheets für jede Seite mit AngularJS
- 22. Verschiedene Menüs für Handy/Desktop
- 23. ViewPagerIndicator Abhängigkeit mit Gradle und Android Studio
- 24. Flex Component Lifecycle mit Menüs - Best Practice
- 25. ViewPagerIndicator nicht Position Aktualisierung
- 26. Wie ViewPagerIndicator beide Titel und Kreis
- 27. Ändern TabPageIndicator Fußzeile und Text Farben (ViewPagerIndicator)
- 28. assign jede Datei lesen zu verschiedenen Variablen
- 29. wordpress-menüs wie mehrstufige Menüs
- 30. Wiederholte Testbeschreibungen mit RSpec für jede Benutzerrolle
Danke. Genau das habe ich gesucht. – Dave