2012-02-13 8 views
7

Mam niestandardową ikonę domu dla mojej aplikacji i chcę, aby była wyrównana do końca na lewo od paska czynności, tak aby dotykała krawędzi ekranu. Czy to możliwe, a jeśli tak, jak to zrobić? Nie widzę niczego, co ustawia dopełnienie lub margines, aby było wyrównane do końca w lewo.Jak usunąć margines między ikoną aplikacji a krawędzią ekranu na pasku akcji?

+0

istnieje margines wyściółka lub przymocowany do ikony domu ?? jeśli tak, usuń je. Btw pokaż nam jakiś kod z pliku xml, a tutaj wielu może ci pomóc. –

+0

Nie ma dla niego xml. Właśnie dodano do manifestu: icon = "@ drawable/my_icon" i ab.setDisplayShowHomeEnabled (true); ab.setDisplayUseLogoEnabled (false); do działania – CACuzcatlan

Odpowiedz

5

W końcu udało mi się to uzyskać. Musisz użyć niestandardowego widoku paska akcji. To całkiem proste:

(to jest przy użyciu ActionBarSherlock, powinien działać z Zasobu compat biblioteki również ...)

  • pierwsze w swojej RES/wartości/themes.xml, ustawić wyświetlanie actionbar Opcje "Niestandardowy":

    <item name="android:displayOptions">showCustom</item> 
    
  • Następnie należy utworzyć plik o nazwie res/layout/actionbar_layout.xml i miejsce w nim coś takiego:

    <ImageView 
        android:id="@+id/home_icon" 
        android:layout_alignParentLeft="true" 
        android:layout_marginLeft="5dp" 
        android:layout_marginRight="5dp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        android:scaleType="centerCrop" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" /> 
    
    <!-- Add textviews or whatever you like here to replicate the actionbar 
        title etc. --> 
    

  • Następnie w kodzie aktywności dodać następujące:

    View mActionCustomView = getSherlockActivity().getLayoutInflater() 
        .inflate(R.layout.actionbar_layout, null); 
    getSherlockActivity().getSupportActionBar().setCustomView(
         mActionCustomView); 
    
    ImageView homeIcon = (ImageView)mActionCustomView 
        .findViewById(R.id.home_icon); 
    int abHeight = getSherlockActivity().getSupportActionBar() 
        .getHeight(); 
    homeIcon.setLayoutParams(new RelativeLayout.LayoutParams(
          abHeight, abHeight)); 
    

To w zasadzie to! Daj mi znać, jeśli coś mi zostało. Istnieje kilka korzyści z posiadania dostosowywanego widoku paska akcji, po prostu trzymaj się podstaw i będzie świetnie wyglądać.

enter image description here

+0

Nie trzeba ustawiać parametrów układu homeicon, wystarczy ustawić marginesy na swoim @ id/home_icon na 0 (zamiast 5dp, jak pokazano w przykładzie). – scottyab

+0

Nie mam themes.xml ... –

+0

@OnuraySahin Możesz ustawić tę samą opcję w kodzie http://developer.android.com/reference/android/app/ActionBar.html#setDisplayShowCustomEnabled%28boolean%29 – brk3

Powiązane problemy