studio programacion personalizado móviles mostrar libro dialogo desarrollo curso cuadro aplicaciones android layout textview loader progressdialog

programacion - mostrar cuadro de dialogo android



Mostrar diálogo de progreso adjunto a textview (5)

Envuelva la vista de texto y un widget de barra de progreso en un diseño apropiado. Más sobre ProgressBar aquí: http://developer.android.com/reference/android/widget/ProgressBar.html

Necesito mostrar el círculo de progreso adjunto a la vista de texto, pero debe ser de tal manera que no se resista al usuario para tocar otros componentes de la pantalla. algo como esto

¿Cualquier pista?


He hecho algo como esto, pero también incluye un ícono. Aquí hay un código listo para hornear para aquellos que están buscando esto.

En tu uso de diseño

<LinearLayout android:id="@+id/my_element" android:layout_width="match_parent" android:layout_marginLeft="20dp" android:layout_marginTop="5dp" android:layout_height="20dp"> <ImageView android:layout_width="20dp" android:layout_height="20dp" android:src="@drawable/ic_action_place"/> <TextView android:layout_width="wrap_content" android:layout_height="20dp" android:textColor="@color/black" android:textSize="12sp" android:gravity="center_vertical" android:text=""/> <ProgressBar android:layout_width="wrap_content" android:layout_height="20dp" style="@android:style/Widget.ProgressBar.Small" android:layout_marginRight="5dp" /> </LinearLayout>

Esta es una distribución lineal que contiene la vista de texto (un icono adicional en el frente solo para patadas) y una barra de progreso giratoria de pequeño tamaño.

En la actividad / fragmento agregar

LinearLayout llMyElement;

En el uso correspondiente onCreate / onCreateView

llMyElement = (LinearLayout) view.findViewById(R.id.my_element);

En AsyncTask onPostExecute o donde quieras establecer el texto después de un proceso, llama a setLoadingText(llMyElement, “Some Result");

E incluya esta función de ayuda que establece el texto en su clase de actividad o en cualquier lugar adecuado, como una clase Util.

public void setLoadingText(LinearLayout layout, String text) { int count = layout.getChildCount(); for(int i = 0; i < count; i++) { if(layout.getChildAt(i) instanceof TextView) ((TextView) layout.getChildAt(i)).setText(text); if(layout.getChildAt(i) instanceof ProgressBar) layout.getChildAt(i).setVisibility(View.GONE); } }

Y eso es todo ... ¡Disfrútalo!


Tal cosa no es posible con solo un TextView IMO. Supongo que la mejor manera de imitar ese efecto sería tener un LinearLayout con Textview y una Imageview (orientación horizontal). Tener la imagen vista invisible inicialmente. Alternar la visibilidad de la vista de la imagen condicionalmente. Es decir, cuando comience la acción, establezca la visibilidad y, cuando termine la acción, escóndala de nuevo. Espero que entienda la idea.


establecer el diseño exterior como Framelayout, dentro de TextView / EditText y ProgressBar establecer (layout gravity "Right")

<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="24dp" android:text="Getting Location" android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="12dp" > <requestFocus /> </TextView> <ProgressBar android:id="@+id/ProgressBar01" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:layout_marginRight="4dp" /> </FrameLayout> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" > <EditText android:id="@+id/EditText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="24dp" android:text="http://example.com" android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="12dp" /> <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:layout_marginRight="4dp" /> </FrameLayout>


FrameLayout dentro de FrameLayout :

<FrameLayout android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/my_info_card" android:gravity="center" android:layout_gravity="center"/> <ProgressBar android:id="@+id/progress_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Small" android:layout_gravity="center"/> </FrameLayout>

De esta forma, la ProgressBar aparece sobre TextView . Seguramente puede ocultar ProgressBar cuando lo desee mediante setVisibility() . También puede establecer la gravedad de cada diseño por android:layout_gravity . En el ejemplo anterior, se ve así: