O ActionBar com layout personalizado não ocupa a largura da tela cheia no Android 4.4.2 (KitKat)
Quero exibir uma barra de ação com um layout personalizado. O layout personalizado possui três ImageViews, um no centro e os outros dois nas extremidades esquerda e direita da barra de ação. Não deve haver botão voltar ou itens de ação.
Aqui está o que eu usei:
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
View actionBarView = LayoutInflater.from(this).inflate(resource, null);
actionBar.setCustomView(actionBarView, lp);
O layout personalizado é inflado corretamente,mas não ocupa toda a largura da tela. Isso acontece no Android 4.4.2 (KitKat). No pão de gengibre, o arranjo acima funciona corretamente.
Eu tentei as soluções recomendadas nas seguintes discussões:
ActionBar - visualização personalizada com ImageView centralizado, itens de ação nas lateraisRelativeLayout / customview não preenche a largura da guiaNo entanto, o problema permanece. Deve haver uma maneira de forçar o layout a ocupar toda a largura da tela.
Estou usando a barra de ação da biblioteca V7 AppCompat. Alguém sabe uma maneira de contornar isso ??
EDIT 1:
Aqui está o arquivo de layout XML:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/left_icon"
android:background="@drawable/leftbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:clickable="true"
android:onClick="leftButtonPressed"
android:hapticFeedbackEnabled="true"
/>
<ImageView
android:id="@+id/center_icon"
android:background="@drawable/centertitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
/>
<ImageView
android:id="@+id/right_icon"
android:background="@drawable/rightbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:clickable="true"
android:onClick="rightButtonPressed"
android:hapticFeedbackEnabled="true"
/>
</RelativeLayout>
Aqui está o que parece no Gingerbread (2.3.5):
Gingerbread Action Bar http://i62.tinypic.com/4utfu0.png
Como você pode ver, está inflando corretamente. E aqui está como fica no Kitkat (4.4.2):
Kitkat Action Bar http://i59.tinypic.com/vosfex.png
Você pode ver que há um pequeno espaço à direita e o layout não está ocupando toda a largura.
Não acredito que haja um problema com o layout (ele está inflando corretamente no Android 2.3.5), mas posso estar errado. Diga-me se eu sou louco.
EDIT 2:
Graças aDoctoror Drive eesta postagem, Consegui o resultado que queria. Eu sei que é um pouco estranho: por que usar uma barra de ação se você não tiver nenhum item de navegação ou ação, mas é isso que eu preciso para o meu problema específico. Eu tenho um TabHost com uma pilha de fragmentos deslizantes em cada guia, e o LinearLayout superior (ou seja, a Barra de Ação) precisa mudar sua aparência quando diferentes fragmentos são exibidos.
EDIT 3:
Aqui estão mais alguns links para entender isso ainda mais:
https://groups.google.com/forum/#!msg/actionbarsherlock/i8JRUkBJjqk/ZzQV9xaM-lkJhttps://groups.google.com/forum/#!topic/android-developers/FGEi72thLzE