SherlockActionBar: Cómo ajustar CustomView contra actionBar
Pregunta:
¿Cómo puedo recuperar el título?
- Android AlertDialog reglas setView
- Android - Canvas.clipRect () - Eliminar el clip existente
- ImageViews son invisibles si el método dispatchDraw de Viewgroups se sobrescribe en android
- El lienzo no dibuja en Vista personalizada
- Llene el gráfico sinusoidal de Android
Aquí está la captura de pantalla (Título faltante):
Configuración de la barra de acción:
ActionBar actionBar = getSupportActionBar(); actionBar.setTitle("My Title"); actionBar.setIcon(drawable.dropdown_user); View mLogoView = LayoutInflater.from(this).inflate(R.layout.mLogoView, null); actionBar.setCustomView(mLogoView); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowTitleEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true);
MLogoView.xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="match_parent" > <ImageView android:id="@+id/img_merchant" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:src="@drawable/infoflex"> </ImageView> </RelativeLayout >
- Android dibujar círculo con 2 colores (gráfico circular)
- ¿Necesito volver a llamar a super.onDraw () en una vista personalizada?
- Lona transparente para Android con transparencia
- Android: Haga que la vista en la parte superior de la lista desplaza junto con la vista de lista
- Custom ListView con la fecha como SectionHeader (Custom SimpleCursorAdapter utilizado)
- Lazy carga de GridView con imágenes de descarga de Internet
- Aplicar como listview
- Barra de herramientas extendida con vista personalizada que no se muestra con ancho completo
La primera cosa que puedo pensar una manera de arreglar que es tratar de establecer
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="right" >
A su RelativeLayout
. Debido a que por defecto en Android cada vista se agrega de izquierda a derecha (si no especifica otra cosa en su código).
Y si eso no funciona, añadiría android:layout_width="90dip"
o algún otro valor dependiendo de la imagen y sus pruebas. La segunda opción es más como una solución, pero creo que funcionará en todos los dispositivos.
Editar:
Como he encontrado hay un pequeño problema usando RelativeLayout
y vistas personalizadas en ActionBar, por lo que la mejor opción es utilizar LinearLayout
y establecer LayoutParams
través de código. Cambie su xml para que se vea así:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/asus" /> </LinearLayout >
Y en su MainActivity.class utilice esto:
import com.actionbarsherlock.app.ActionBar.LayoutParams; .... ActionBar actionBar = getSupportActionBar(); actionBar.setTitle("OMG"); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL); View customNav = LayoutInflater.from(this).inflate(R.layout.img, null); // layout which contains your button. actionBar.setCustomView(customNav, lp); actionBar.setDisplayShowCustomEnabled(true);
- Obtener el nombre de la aplicación activa en Android
- ActionBarActivity con ActionBarDrawerToggle – No utiliza drawerImageRes