È possibile creare tale barra delle azioni, ma è un po 'più complicato del gonfiare un menu. Il menu creato nel metodo onCreateOptionsMenu() sarà sempre allineato a destra, collocato nella barra delle azioni divisa o nascosto sotto il tasto menu.
Se si desidera che la barra delle azioni contenga solo due voci di menu, una sul lato sinistro e l'altra sul lato destro, è necessario creare una visualizzazione personalizzata nella barra delle azioni. layout di visualizzazione
Il costume sarà qualcosa di simile:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:src="@drawable/ic_menu_item1"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
<ImageButton android:src="@drawable/ic_menu_item2"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item2"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"/>
</RelativeLayout>
Definire nel tema che si desidera utilizzare visualizzazione personalizzata. Il tema dovrebbe contenere:
<style name="MyTheme" parent="@style/Theme.Sherlock">
<item name="actionBarStyle">@style/MyActionBarStyle</item>
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
<item name="displayOptions">showCustom</item>
<item name="android:displayOptions">showCustom</item>
</style>
Impostare la visualizzazione personalizzata in attività (o frammento):?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar ab = getSherlock().getActionBar();
LayoutInflater li = LayoutInflater.from(this);
View customView = li.inflate(R.layout.my_custom_view, null);
ab.setCustomView(customView);
ImageButton ibItem1 = (ImageButton) customView.findViewById(R.id.item1);
ibItem1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
ImageButton ibItem2 = (ImageButton) customView.findViewById(R.id.item2);
ibItem2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
}
fonte
2013-07-24 16:17:18
pulsante Home .. Il suo solito un pulsante hardware, che ovviamente non può essere spostato, e se il suo un pulsante software, non può essere modificato. Per non parlare, è comunque nel mezzo, quindi invertire sarebbe ancora nel mezzo. Molto probabilmente non hai spiegato cosa stai facendo, correttamente. – Doomsknight
intendo pulsante home (android.R.id.home) – user1571714