2012-02-13 23 views
7

Tôi có một biểu tượng nhà tùy chỉnh cho ứng dụng của mình và tôi muốn nó căn chỉnh tất cả ở bên trái thanh hành động để nó chạm vào cạnh của màn hình. Điều này có thể, và nếu có, làm thế nào nó có thể được thực hiện? Tôi không thấy bất cứ điều gì mà đặt padding hoặc lề để làm cho nó sắp xếp tất cả các cách bên trái.Cách xóa lề giữa biểu tượng ứng dụng và cạnh của màn hình trên Thanh tác vụ?

+0

có đệm hoặc lề gắn vào biểu tượng nhà không ?? nếu vậy hãy loại bỏ chúng. Btw cho chúng ta thấy một số mã từ tập tin xml thì nhiều người ở đây có thể giúp bạn. –

+0

Không có xml cho nó. Chỉ cần thêm android: icon = "@ drawable/my_icon" vào tệp kê khai và ab.setDisplayShowHomeEnabled (true); ab.setDisplayUseLogoEnabled (false); với hoạt động – CACuzcatlan

Trả lời

5

Cuối cùng tôi đã đạt được điều này. Bạn cần sử dụng chế độ xem thanh tác vụ tùy chỉnh. Nó thực sự khá dễ dàng:

(Điều này được sử dụng ActionBarSherlock, nó sẽ làm việc với các cổ thư viện compat cũng ...)

  • đầu tiên trong res/giá trị/themes.xml, thiết lập hiển thị actionbar tùy chọn để "tùy chỉnh":

    <item name="android:displayOptions">showCustom</item> 
    
  • Sau đó, tạo ra một tập tin gọi là res/layout/actionbar_layout.xml và đặt trong nó một cái gì đó như:

    <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. --> 
    

  • Tiếp theo, trong mã hoạt động của bạn thêm dòng sau:

    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)); 
    

Đó là về cơ bản nó! Hãy cho tôi biết nếu có bất cứ điều gì tôi rời ra. Có một số lợi ích tốt đẹp khi có chế độ xem thanh tác vụ có thể tùy chỉnh, chỉ cần tuân theo các khái niệm cơ bản và nó sẽ trông tuyệt vời.

enter image description here

+0

Bạn không cần đặt thông số bố cục homeicon, chỉ cần đặt lề trên @ + id/home_icon thành 0 (thay vì 5dp như được hiển thị trong ví dụ). – scottyab

+0

Tôi không có themes.xml ... –

+0

@OnuraySahin Bạn có thể đặt cùng một tùy chọn trong mã http://developer.android.com/reference/android/app/ActionBar.html#setDisplayShowCustomEnabled%28boolean%29 – brk3

Các vấn đề liên quan