Actualmente estoy usando ViewFlipper
para mi actividad principal con dos diseños diferentes. Quiero utilizar un tercer diseño, pero solo puedo encontrar los comandos showNext()
y showPrevious()
. ¿Puede alguien mostrarme cómo implementar un tercer diseño usando ViewFlipper
?¿Cómo usar flipper de visualización con tres diseños?
Respuesta
He aquí un ejemplo que muestra cómo mostrar diferentes vistas en un ViewFlipper.
El diseño del ejemplo se compone de las siguientes partes. Hay tres botones de radio Un ViewFlipper se coloca debajo de los botones de radio. Esta aleta tiene tres vistas simples diferentes con diferentes textos.
Los botones de radio se conectan a un oyente en el código java que cambiará la vista que se muestra con ViewFlipper según el botón de opción que se elija actualmente.
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<RadioGroup android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio0" android:layout_width="wrap_content"
android:text="Show View 1" android:checked="true"></RadioButton>
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio1" android:layout_width="wrap_content"
android:text="Show view 2"></RadioButton>
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio2" android:layout_width="wrap_content"
android:text="Show View 3"></RadioButton>
</RadioGroup>
<ViewFlipper android:id="@+id/ViewFlipper01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!--adding views to ViewFlipper-->
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First view is now displayed"></TextView>
<TextView android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second view is now displayed"></TextView>
<TextView android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Third view is now displayed"></TextView>
</ViewFlipper>
</LinearLayout>
JAVA
package com.test.threeviews;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.ViewFlipper;
public class ThreeViewsinaFlipperActivity extends Activity {
RadioButton RB0;
RadioButton RB1;
RadioButton RB2;
ViewFlipper VF;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*
* Find the views declared in main.xml.
*/
RB0 = (RadioButton) findViewById(R.id.radio0);
RB1 = (RadioButton) findViewById(R.id.radio1);
RB2 = (RadioButton) findViewById(R.id.radio2);
VF = (ViewFlipper) findViewById(R.id.ViewFlipper01);
/*
* Set a listener that will listen for clicks on the radio buttons and
* perform suitable actions.
*/
RB0.setOnClickListener(radio_listener);
RB1.setOnClickListener(radio_listener);
RB2.setOnClickListener(radio_listener);
}
/*
* Define a OnClickListener that will change which view that is displayed by
* the ViewFlipper
*/
private OnClickListener radio_listener = new OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.radio0:
VF.setDisplayedChild(0);
break;
case R.id.radio1:
VF.setDisplayedChild(1);
break;
case R.id.radio2:
VF.setDisplayedChild(2);
break;
}
}
};
}
Escribir muchas gracias – user861040
Muchas gracias por el código – user861040
Ver este simple uso de android.widget.ViewFlipper. Con ella se puede crear una disposición distinta de xml y luego cambiar entre ellos con el método simple como esto: ejemplo
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.myViewFlipper);
// you can switch between next and previous layout and display it
viewFlipper.showNext();
viewFlipper.showPrevious();
// or you can switch selecting the layout that you want to display
viewFlipper.setDisplayedChild(1);
viewFlipper.setDisplayedChild(viewFlipper.indexOfChild(findViewById(R.id.secondLayout)
XML con diseños de árboles:
<ViewFlipper
android:id="@+id/myViewFlipper"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/firstLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
<LinearLayout
android:id="@+id/secondLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
<LinearLayout
android:id="@+id/thirdLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
</ViewFlipper>
Usted puede usarlo de esta manera también. He adjuntado el código java y el archivo xml donde se usa un botón para cambiar la vista flipper.
package com.nikhil.play.add_subtract;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ViewFlipper;
public class Flipper extends Activity implements OnClickListener {
ViewFlipper flippy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flipper);
flippy = (ViewFlipper) findViewById(R.id.viewFlipper1);
flippy.setOnClickListener(this);
flippy.setFlipInterval(10000);
flippy.startFlipping();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
flippy.showNext();
}
}
XML CODE-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 2" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 3" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 4" />
</ViewFlipper>
</LinearLayout>
respuesta más simple es: USO 'FOR' BUCLE
1 solución de línea
// j = número de veces u quiere cambiar la vista
for(i=0;i<j;i++) viewFlipper.showNext();
Control th e viewFlipper, al variar el valor de 'j'.
Gracias
xml
<ViewFlipper
android:id="@+id/viewflip"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_weight="1"
/>
Java
public class BlankFragment extends Fragment{
ViewFlipper viewFlipper;
FragmentManager fragmentManager;
int gallery_grid_Images[]={drawable.image1, drawable.image2, drawable.image3,
drawable.image1, drawable.image2, drawable.image3, drawable.image1,
drawable.image2, drawable.image3, drawable.image1
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(fragment_blank, container, false);
viewFlipper =(ViewFlipper)rootView.findViewById(R.id.viewflip);
for(int i=0;i<gallery_grid_Images.length;i++)
{
// This will create dynamic image view and add them to ViewFlipper
setFlipperImage(gallery_grid_Images[i]);
}
return rootView;
}
private void setFlipperImage(int res) {
Log.i("Set Filpper Called", res+"");
ImageView image = new ImageView(getContext());
image.setBackgroundResource(res);
viewFlipper.addView(image);
viewFlipper.setFlipInterval(1000);
viewFlipper.setAutoStart(true);
}
- 1. Android: vista de desplazamiento horizontal con tres diseños lineales
- 2. Diseños de fluido con CSS
- 3. Diseños de representación con Backbone.js
- 4. CSS, en línea de visualización y tres divs
- 5. Subproceso de Python: cómo usar las tuberías tres veces?
- 6. d3.js red de dibujo con diseños de inmovilización
- 7. ¿Switch caja con tres parámetros?
- 8. ListViews con varios diseños de elementos
- 9. OpenGL y diseños
- 10. enrutadores de rieles con diferentes diseños
- 11. Cómo reutilizar diseños en WPF
- 12. Cuándo usar diseños de paquete o cuadrícula en tkinter?
- 13. regla de tres con puntero inteligente?
- 14. ¿Puedo usar CALayer para acelerar la visualización?
- 15. Clojure: reducir con tres parámetros
- 16. Usar diseños de plantilla diferentes para entorno dev y prod
- 17. Anidando con tres niveles de citas
- 18. Mejores prácticas de diseños HTML
- 19. nanoc y diseños múltiples
- 20. Diseños RazorEngine
- 21. Tres DIV apilados verticalmente con medio desplazable
- 22. Injectview (Roboguice) no funciona con varios diseños
- 23. ¿Cómo intercambiar fragmentos con diferentes diseños en Android?
- 24. Visualización de árbol con Java
- 25. CakePHP, extensiones y diseños
- 26. Cómo arreglar el tamaño de los diseños
- 27. diseños en expressjs
- 28. A #define en C con tres puntos
- 29. Crear ViewHolders para ListViews con diferentes diseños de elementos
- 30. Rails 3.2 Diseños de motor
Si usted tiene 3 diseños en viewflipper, shownext() muestra la vista de forma secuencial, es decir shownext() aftrer segundo diseño muestra tercero diseño. – sat
Intente utilizar este método: public void setDisplayedChild (int whichChild) para establecer sus vistas. – HenrikS
¿Es posible pasar de la primera vista a la segunda vista a la primera y luego a la tercera? – user861040