Problema de superposición de texto en ViewFlipper ..
He utilizado el control ViewFlipper
para mostrar tweets con un intervalo continuo de left to right
. He añadido textview dinámico para cada tweet en ViewFlipper.
Todo funciona bien, pero algunas veces textview superpone.
- ¿Cómo obtener las flechas derecha / izquierda en Actividad para indicar más pantallas a la derecha / izquierda?
- Desarrollo de una pantalla de inicio de Android
- Implementación del transformador de página de alejamiento de Android para un ViewFlipper
- Hacer carrusel con ViewFlipper o ViewPager
- ¿La mejor práctica para viewflipper que contiene 10 linearlayouts?
¿Cuál es la razón de este comportamiento extraño?
Código:
for (int i = 0; i < tweets.length(); i++) { tweet = tweets.getJSONObject(i).getString("title")+" tweet on "+tweets.getJSONObject(i).getString("pubDate"); tv = new TextView(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); params.weight = 1.0f; params.gravity=48; tv.setLayoutParams(params); tv.setGravity(Gravity.CENTER); tv.setTextSize(22); tv.setTextColor(ColorStateList.valueOf(Color.WHITE)); tv.setSingleLine(); //tv.setTextColor(getREs) tv.setText(tweet); flipper.addView(tv); } flipper.setInAnimation(inFromRightAnimation(1500)); flipper.setOutAnimation(outToLeftAnimation(1500)); flipper.startFlipping(); public static Animation inFromRightAnimation(int duration) { Animation inFromRight = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); inFromRight.setDuration(duration); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } public static Animation outToLeftAnimation(int duration) { Animation outtoLeft = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); outtoLeft.setDuration(duration); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; }
EDIT :
Aquí hay otra instantánea que muestra el problema anterior.
- Cómo cambiar el atributo 'android: autoStart' de ViewFlipper en RemoteViews mediante programación?
- Android ViewFlipper + Detector de gestos
- Error de cursor Android: "asegúrese de que el cursor se inicialice correctamente antes de acceder a los datos de él ..."
- Android: moviendo la imagen de fondo mientras navega por las vistas
- Cómo mantener la vista actual en ViewFlipper al cambiar la orientación
- ViewFlipper vs Fragments
- La animación de Viewflipper no funciona en el primer golpe
- ¿Volver a calcular ScrollView en diferentes vistas de ViewFlipper?
Tuve el mismo problema con ViewFlipper y el gesto onFling en algunos dispositivos con mi aplicación.
Al agregar un color de fondo a mi vista, pude resolver el problema. En mi caso fue el ListViews que estaban teniendo el texto duplicado superpuesto, por lo que acaba de añadir un fondo negro en el xml de cada ListView y se fijó el problema para mí.
android:background="#000000"
Este comportamiento todavía parece muy extraño y no estoy exactamente seguro de por qué esto lo arregló. Tal vez tenía algo que ver con la transparencia.
Tuve el mismo problema con ViewFlipper. I fnd la razón, mira el código incorrecto:
public void setDuration(int ms) { mDurationTime = 1000*ms; this.setFlipInterval(mDurationTime);//don't do this }
En mi caso, listview addHeader (ViewFlipper)
Tratar
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
Utilice FILL_PARENT en lugar de WRAP_CONTENT
Funcionó bien para mí.
Esto se debe a que la duración de InAnimation y OutAnimation es más corta que el tiempo de flipInterval.
Sólo asegúrese de que el tiempo flipInterval más largo que el tiempo de animación.
Ayúdelo a ayudar.