Logo ActionBar wyśrodkowane i elementy akcji po bokach
Jak zrobić actionbar, aby mieć logo w środku i dwa elementy akcji po bokach?
Będę używał ActionBar Sherlock.
1 answers
Jak zauważyłem w komentarzu, nie jestem do końca pewien, czy cokolwiek z tego zmieni się z ABS( jestem pewien, że niewiele by), ale za pomocą standardowego paska akcji można załadować niestandardowy układ .xml dla tytułu paska akcji. Na przykład, możesz mieć action_bar_title.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/your_desired_background" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:maxLines="1"
android:ellipsize="end"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</RelativeLayout>
Następnie, w swojej aktywności, chciałbyś wywołać taką metodę w OnCreate ():
private void setupActionBar() {
ActionBar ab = getActionBar();
ab.setDisplayShowCustomEnabled(true);
ab.setDisplayShowTitleEnabled(false);
ab.setIcon(R.drawable.your_left_action_icon);
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.action_bar_title, null);
TextView titleTV = (TextView) v.findViewById(R.id.title);
Typeface font = Typeface.createFromAsset(getAssets(),
"fonts/your_custom_font.ttf");
titleTV.setTypeface(font);
ab.setCustomView(v);
ab.setHomeAsUpEnabled(true);
}
Aby przejąć kontrolę nad lewym elementem akcji, możesz to zrobić w swojej aktywności:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.yourRightActionItem:
//do something
return true;
case android.R.id.home: //<-- this will be your left action item
// do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Oczywiście, upewnij się, że wykonaj również inne niezbędne ustawienia dla elementów akcji w menu xml. Dotyczy to wszystkich prawostronnych elementów akcji.
Edit: właśnie widziałem w innym komentarzu napisałeś, że tytuł będzie obrazkiem. Jeśli tak jest, po prostu zastąp widok tekstu, którego użyłem w moim przykładzie ImageView i zignoruj kod dostosowywania czcionki w metodzie setupActionBar ().
Edit2: zaktualizowałem Mój kod Java. Będziesz musiał zrobić ab.setHomeAsUpEnabled (true), a następnie mieć własny motyw aby zaimplementować niewidoczny (a może @null chociaż Nie wiem, czy Android zaakceptuje to) rysowalny dla domu jako wskaźnik up. Zobacz tutaj (zaczerpnięte z Odpowiedzi tutaj:)<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
<!-- or you could try @null -->
</style>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:26