12

Tôi đang xây dựng một ứng dụng hoạt động trên Android 2.3 và tôi đã thêm cả thư viện ActionBarSherlock và HoloEverywhere.Làm cách nào để áp dụng chủ đề android HoloEverywhere khi sử dụng ActionBarSherlock?

Để sử dụng ActionBarSherlock tôi phải sử dụng Theme.Sherlock như vậy:

<application 
    ... 
    android:theme="@style/Theme.Sherlock" 
    ... > 

Và đó là ok.

Hoạt động chính của tôi khá đơn giản: chỉ một ListView có 5 hàng (Tôi không sử dụng ListAcivity).

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

    <ListView 
     android:id="@+id/menuListView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

Vì Android 2.3, tôi vẫn có chủ đề màu da cam là & (ngoại trừ ActionBar). Bây giờ tôi muốn thêm chủ đề HoloEverywhere bằng cách sửa đổi tệp kê khai của tôi như vậy:

<application 
    ... 
    android:theme="@style/Theme.HoloEverywhereDark.Sherlock" 
    ... > 

NHƯNG không thay đổi bất cứ điều gì ... Tôi đang thiếu gì?

+2

tôi cần trình quay số như ICS trong các phiên bản trước. Nhưng tôi đã thử nhập ActionBarSherlock và Holoeverywhere. Nhưng trong nhật thực sau khi nhập rất nhiều lỗi. Và cũng xin vui lòng cho biết chúng ta không thể chỉ sử dụng holoeverywhere mà không có ActionBarSherlock? – Vins

+0

lỗi nào? và có, bạn có thể sử dụng Holoeverywhere mà không có actionbarsherlock – Alexis

+0

Giống như lỗi tài nguyên không tìm thấy. Bước tôi đã làm để nhập khẩu là-> File-> Dự án mới-> Dự án Android Từ mã hiện tại. – Vins

Trả lời

7

Để kích hoạt chủ đề Holo theo mặc định cho tất cả các ListView tôi đã đi trong file styles.xml của thư viện HoloEverywhere sau đó tôi sửa đổi các yếu tố "ListViewStyle" bằng cách thêm dòng này:

<item name="android:listSelector">@drawable/list_selector_holo_dark</item> 
+1

Có. Điểm tốt. –

3

Tôi gặp vấn đề tương tự với công cụ chọn của ListView. Tôi mặc dù rằng HoloEveruwhere sẽ áp dụng bộ chọn holo (màu xanh) theo mặc định (Tôi đã thử cả hai Theme.HoloEverywhereLight và Theme.HoloEverywhereLight), nhưng nó không. Có lẽ tôi đang thiếu cái gì đó.

tôi đã kết thúc thiết lập các selector bằng tay:

listView.setSelector(R.drawable.list_selector_holo_light); 

Bạn có một vài nguồn drawable trong thư viện bạn có thể tận dụng (list_selector_holo_light ví dụ).

+0

thực sự hoạt động nhưng sau đó tôi phải làm điều đó cho mỗi ListView. – Alexis

2

Một xách tay và chính xác giải pháp sẽ được kế thừa từ ListViewStyle và ghi đè lên thuộc tính, tạo điều này trong tệp styles.xml của bạn.

Nếu bạn có thư viện chính thức của HoloEverywhere được triển khai từ xa trên máy chủ (ví dụ: Maven repo), bạn không thể phụ thuộc vào nó thay đổi trong styles.xml (bạn đang sửa đổi nó cho nhu cầu của riêng mình).

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