2012-02-17 19 views

Odpowiedz

0

Dolny pasek zostanie wypełniony, gdy masz więcej elementów niż można pokazać na górnym pasku.

Zamiast pokazywać „overflow” trzy kropki elementy zostaną umieszczone na dolnym pasku. Pamiętaj o używaniu: w swoich elementach menu w pliku XML:

Czytaj więcej tutaj: http://developer.android.com/guide/topics/ui/actionbar.html#SplitBar

+0

To nie wydaje się właściwe. W przykładzie Google+ mają również ikonę przepełnienia u góry. – PolandSpring

+1

@kkshin To jest widok niestandardowy, a nie domyślny pasek podziału akcji. – doorstuck

+0

Próbowałem tego, ale po prostu idzie w dolnym pasku akcji. – Timmmm

11

Nie sądzę, że jest to możliwe przy użyciu standardowego ActionBar. Po włączeniu podziału akcji ActionBar, akcje będą wyświetlane na dole na wąskim ekranie.

Dolny pasek w „Utwórz wiadomość” aktywność aplikacji Google+ wydaje się być realizacja niestandardowych. Zwróć uwagę na długie naciśnięcie, aby pokazać, że etykieta akcji nie działa, a dolny pasek pozostaje nawet po zmianie orientacji poziomej. Element lokalizacji jest przełącznikiem, który jest również niestandardowym zachowaniem ActionBar.

26

Mam nadzieję, że moja odpowiedź nie jest dla ciebie za późna.

  1. Użyj android:uiOptions="splitActionBarWhenNarrow" (to dodaje rzeczy do dolnego paska).
  2. Utwórz nowy układ, taki jak poniższy kod (ten układ zajmie się wszystkimi Twoimi pozycjami na górnym pasku).

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" > 
    <Switch 
        android:id="@+id/switch1" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent"/> 
    <ImageButton 
        android:id="@+id/action_starred" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        style="?android:attr/actionButtonStyle" 
        android:src="@android:drawable/ic_menu_compass" 
        android:onClick="FakeMenu"/> 
    </LinearLayout> 
    
  3. Wklej to w swojej działalności

    ActionBar actionBar = getActionBar();    
    actionBar.setCustomView(R.layout.actionbar_top); //load your layout 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_CUSTOM); //show it 
    
  4. To wszystko :)

+0

Bardzo mi pomogłeś, dzięki! Mała uwaga dla osób używających biblioteki ActionBarSherlock - możesz uzyskać obiekt paska akcji za pomocą getSherlock(). GetActionBar(). – lopek

+0

jak wyświetlić nad menu przepływu u góry zamiast u dołu ???? – samirprogrammer

2

miałem ten sam problem, nic, że znalazłem naprawdę działa, ponieważ miałem do czynienia z wąskim paskiem akcji, potem na dużych urządzeniach guziki zostały umieszczone na górze zamiast na dole. Więc w końcu rozwiązany przez umieszczenie „stopki” w głównym układzie:

Bottom ActionBar Example

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentTop="false" 
     android:layout_above="@+id/footer"> 

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:id="@+id/container" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="@dimen/body_padding_large" 
      android:paddingRight="@dimen/body_padding_large" 
      android:paddingTop="@dimen/body_padding_medium" 
      android:paddingBottom="@dimen/body_padding_medium" 
      android:gravity="top"> 

     </LinearLayout> 

    </ScrollView> 
    <LinearLayout android:id="@+id/footer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_alignParentBottom="true" 
     style="@android:style/ButtonBar"> 
     <Button android:id="@+id/btn_1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Button 1" /> 

     <Button android:id="@+id/btn_2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Button 2" /> 
    </LinearLayout> 
</RelativeLayout> 
0
<?xml version="1.0" encoding="utf-8"?> 

< LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" > 

<Switch 
    android:id="@+id/switch1" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent"/> 

<ImageButton 
    android:id="@+id/action_starred" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="?android:attr/actionButtonStyle" 
    android:src="@android:drawable/ic_menu_compass" 
    android:onClick="FakeMenu"/> 

</LinearLayout> 









//Then put these lines of code in your java class or activity 

    ActionBar actionBar = getActionBar();    
    actionBar.setCustomView(R.layout.actionbar); //load your layout 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_USTOM); //show it 

// nadzieję, że to pomaga

+0

W takim przypadku i jeśli masz prawa do, możesz głosować na tę odpowiedź (jeśli nie, komentarz nie jest potrzebny). Jeśli jednak znalazłeś alternatywny sposób rozwiązania problemu, możesz go udostępnić. – TocToc