vista studio sirve que propiedades para libreria example clase addview android view visible

studio - que es vista en android



Vista de Android establecida en Visible y Gone en el mismo método OnClick, Ver nunca muestra Visible (4)

Esos comandos se ejecutan uno tras otro. Entonces, en un sentido técnico, puede ser visible, pero solo durante un milisegundo o dos. Debe distinguir cuándo hacer que la vista sea visible y cuándo ocultarla ...

Dijiste que te gustaría que el TextView "parpadee" en cierto sentido, así que usemos el Handler que es parte de cada Vista para llamar a Runnable. Este Runnable simplemente ocultará el TextView unos momentos más tarde:

1) Configurar una variable de clase:

Runnable hide = new Runnable() { @Override public void run() { textView1.setVisibility(View.GONE); } };

2) Llamar al ejecutable en unos momentos:

button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // make textview visible for 1 second (1000 milliseconds) textView1.setVisibility(View.VISIBLE); textView1.postDelayed(hide, 1000); } });

(Un controlador y Runnable no bloquea el hilo de UI).

Hola comunidad de stackoverflow,

Estoy usando Android API 14 en un dispositivo con Android 4.0.3.

En la Actividad, he configurado un botón para mostrar una vista de texto en la página mientras se está realizando una acción. Después de realizar la acción, quiero que TextView desaparezca nuevamente.

button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // make textview visible textView1.setVisibility(View.VISIBLE); // perform action System.out.println("perform action"); // make textview disappear textView1.setVisibility(View.GONE); } });

Si elimino la parte que hace que TextView desaparezca, TextView aparece en la parte superior de la ventana como se esperaba, pero quiero que TextView aparezca durante 1-2 segundos y luego desaparezca.

Al principio me pregunté si necesitaba hacer más trabajo que simplemente realizar una pequeña acción, así que intenté agregar una espera e imprimir el texto, pero nada de eso funcionó. La espera siempre llamaba a la excepción, finalizaba la actividad, y cuando imprimí los números 1-1000, la vista todavía estaba desaparecida.

¿Hay una mejor manera de hacer que un TextView aparezca y desaparezca en una acción OnClick?

¡Gracias por tu ayuda!


Usa una animación

public class MainActivity extends Activity { TextView txt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b = (Button) findViewById(R.id.btn_animation); txt = (TextView) findViewById(R.id.textviewtest); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { txt.clearAnimation(); Animation fadeIn = new AlphaAnimation(0, 1); fadeIn.setInterpolator(new DecelerateInterpolator()); //add this fadeIn.setDuration(1000); Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setInterpolator(new AccelerateInterpolator()); //and this fadeOut.setStartOffset(1000); fadeOut.setDuration(1000); AnimationSet animation = new AnimationSet(false); //change to false animation.addAnimation(fadeIn); animation.addAnimation(fadeOut); animation.setAnimationListener( new AnimationListener() { @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub txt.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub txt.setVisibility(View.VISIBLE); } }); txt.setAnimation(animation); } }); }

activity_main.xml:

<LinearLayout 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" > <Button android:id="@+id/btn_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Animation" /> <TextView android:id="@+id/textviewtest" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:text="HelloWorld" />


aquí hay un ejemplo con controlador (¡no lo he compilado!)

Handler handler = new Handler(); button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // make textview visible textView1.setVisibility(View.VISIBLE); // perform action System.out.println("perform action"); // make textview disappear handler.postDelayed(new Runnable() { @Override public void run() { textView1.setVisibility(View.GONE); }} , 2000); } });