Android Studio: Button siempre aparece en la parte delantera

Tengo un RelativeLayout al que agrego las vistas.

He añadido un botón a él, y el botón siempre aparece delante de todas las otras vistas que se agregan a ella, independientemente del orden en que se agregaron las cosas. ¿Cómo?

Estoy codificando puramente en Java, no XML.

Aquí está un ejemplo simple, el botón aparecerá aquí delante del texto, aunque el texto fue agregado por último:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); RelativeLayout layout = new RelativeLayout(this); Button button = new Button(this); TextView text = new TextView(this); button.setText("Button"); text.setText("Text"); layout.addView(button); layout.addView(text); setContentView(layout); } 

4 Solutions collect form web for “Android Studio: Button siempre aparece en la parte delantera”

Comenzando con Lollipop, un StateListAnimator que controlaba la elevación se añadió al estilo predeterminado Button. En mi experiencia, esto obliga a los botones a aparecer por encima de todo lo demás independientemente de la colocación en XML (o adición programática en su caso). Eso podría ser lo que estás experimentando.

Para resolver esto, puede agregar un StateListAnimator personalizado si lo necesita o simplemente establecerlo en null si no lo hace.

XML:

 android:stateListAnimator="@null" 

Java:

 Button button = new Button(this); button.setText("Button"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { button.setStateListAnimator(null); } 

Más detalles: Android 5.0 android: elevación Funciona para la vista, pero no el botón?

En Android 5.0 (API 21) y superior, debe agregar android: elevación a la vista.

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); RelativeLayout layout = new RelativeLayout(this); Button button = new Button(this); TextView text = new TextView(this); button.setText("Button"); text.setText("Text"); button.setElevation(3.0f); // add this line, you could try with values > 3.0f layout.addView(button); layout.addView(text); setContentView(layout); } 

Desde los desarrolladores de android:

 By default, all child views are drawn at the top-left of the layout, so you must define the position of each view using the various layout properties available from RelativeLayout.LayoutParams. 

http://developer.android.com/guide/topics/ui/layout/relative.html

Pruebe el siguiente fragmento:

 RelativeLayout layout = new RelativeLayout(this); Button button = new Button(this); TextView text = new TextView(this); button.setId(View.generateViewId()); text.setId(View.generateViewId()); button.setText("Button"); text.setText("Text"); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.BELOW, text.getId()); button.setLayoutParams(params); layout.addView(button); layout.addView(text); 

El botón aparece para flotar a la vanguardia de la RelativeLayout está en tan …

Prueba esto:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Button button = new Button(this); button.setText("Button"); RelativeLayout groupContainingButton = new RelativeLayout(this); groupContainingButton.addView(button); TextView text = new TextView(this); text.setText("Text"); RelativeLayout activityLayout = new RelativeLayout(this); activityLayout.addView(groupContainingButton); activityLayout.addView(text); setContentView(activityLayout); } 
  • Cómo dibujar una línea suave a través de un conjunto de puntos con las curvas Bezier?
  • Android CookieManager
  • Cómo desarrollar la barra de estado personalizado en android JellyBean 4.2.2
  • Cómo obtener la dirección IP y los nombres de todos los dispositivos en la red local en Android
  • Aplicación de streaming de radio en línea para Android
  • ¿Cómo administrar una conexión Bluetooth en Android a través de cambios de configuración?
  • Borrar el botón de retroceso para actuar como botón de inicio
  • Establecer funcionalidad del botón de retroceso del widget de búsqueda
  • En HttpURLConnection ¿Por qué no JSONObject como Params trabajo pero String como Params están trabajando
  • Thread.sleep detiene todas las Asyntasks anidadas
  • cómo determinar si una conexión a Internet está actualmente disponible y activa en un dispositivo android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.