2010-08-21 40 views
7

Tôi đã tự hỏi liệu có cách nào để làm nổi bật tiêu đề tùy chỉnh với bản vẽ của riêng mình hay không và sau đó đặt thanh tiến trình trong bố cục tiêu đề sao cho nó hoạt động như quán ba.Thanh tiêu đề tùy chỉnh với tiến trình trong Android

Trong mã của tôi - Tôi muốn có thể gọi setProgressBarIndeterminateVisibility(true) và có hiển thị thanh tiến trình trong thanh tiêu đề tùy chỉnh của tôi.

Điều này có khả thi không?

Tôi đã thiết lập chủ đề ứng dụng của mình sao cho nó sử dụng tiêu đề tùy chỉnh - nhưng tôi không làm cách nào hoặc ở đâu để đặt thanh tiến trình trong bố cục đó.

Xin cảm ơn trước.

EDIT: Ngay bây giờ tôi sử dụng chủ đề của riêng tôi mà trông giống như sau:

<style parent="android:Theme.Light.NoTitleBar" name="BaseTheme"> 
    <item name="android:windowBackground">@drawable/splash_bg</item> 
    <item name="android:windowTitleStyle">@style/TitleBackground</item> 
</style> 

Với tiêu đề kiểu nền như:

<style name="TitleBackground" parent="android:WindowTitleBackground"> 
    <item name="android:background">@drawable/title_bar</item> 
</style> 

Để cung cấp cho tất cả mọi người một ý tưởng tốt hơn - một cái gì đó như điều này. alt text

+0

Nếu bạn có thể thay thế cuộc gọi này với nhau, sẽ có việc cho bạn? vì bạn không bao giờ có thể có CUSTOM_TITLE với bất kỳ tính năng tiêu đề nào khác. – MahdeTo

+0

Ý tôi là tôi có thể tạo bố cục của riêng mình và sử dụng '' để bao gồm tiêu đề trên mọi màn hình - nhưng vì tôi không thể ghi đè phương thức được đề cập, tôi phải tạo một phương pháp khác để hiển thị và ẩn thanh tiến trình của riêng bạn - và sau đó đặt nó vào từng hoạt động. Vâng - bây giờ tôi nghĩ về nó tôi có thể đặt nó trong một lớp và chỉ cần gọi lớp đó nhưng thats vẫn làm việc nhiều hơn tôi muốn làm :). – hwrdprkns

Trả lời

3

Tôi tin rằng cách duy nhất để làm điều đó là sử dụng thanh tiêu đề tùy chỉnh của riêng bạn. Bạn có thể ghi đè mã android từ mã nguồn mở của nó - nhưng đó có thể là một ý tưởng tồi. Điều tốt nhất cần làm là tạo bố cục thanh tiêu đề và chỉ cần <include /> nó trong tất cả các bố cục khác và có thể có lớp trợ giúp để hiển thị và ẩn thanh tiến trình.

4

Dưới đây là một ví dụ tuyệt vời về cách để thực hiện một thanh tiêu đề tùy chỉnh với chỉ báo tiến trình:

http://downloadandroid.info/2010/08/creating-a-custom-titlebar/

Giải pháp của tôi là phải có một lớp ActivityHelper mà mở rộng hoạt động và bao gồm phương pháp này cũng như một để bật hoặc tắt thanh tiến trình, sau đó mở rộng lớp đó từ mỗi Hoạt động của tôi.

12

Thêm mã này trong onCreate trước khi bất kỳ mã khác:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
requestWindowFeature(Window.FEATURE_PROGRESS); 

setProgress(xx); // Then use this to update the progress to xx amount 

Để bật/tắt sử dụng

setProgressBarIndeterminateVisibility(false); //true to turn on. 

Tôi đã sử dụng điều này trong một Hoạt động đăng nhập, vấn đề của tôi là tôi chạy nhất của async đăng nhập vì vậy tôi gặp sự cố khi cập nhật giao diện người dùng. Nhưng tôi có được hình động tiến trình tròn để hiển thị.

Tôi có tính năng này hoạt động trên TabActivity đang được cập nhật từ cuộc gọi không đồng bộ trong Mục đích hoạt động do TabActivity khởi động. Tôi đã phải đặt các dòng "requestWind ...." trong cả TabActivity và Activity được gọi. Ngoài ra tôi đã tìm thấy bằng cách sử dụng setProgress đã không làm nhiều, nhưng hoạt hình spinner đã "quay" toàn bộ thời gian vì vậy tôi hạnh phúc.

+0

Không hoạt động trên mong muốn HTc và HTC wilrfire 2.2.2 – ozmank

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