Sau khi cập nhật SDK của tôi lên tất cả các tính năng mới nhất của Android 5.0, tôi không thể sử dụng thanh tiến trình được tích hợp trong ActionBar trong appcompat. Tôi đã thực hiện tất cả các cố định thông thường (di chuyển supportRequestWindowFeature() gọi đến trước setContent() và trước khi siêu cuộc gọi trong oncreate) nhưng không có gì hoạt động. Đây là những gì tôi đang làm:tiến trình hiển thị ứng dụng trong thanh tác vụ gây ra NPE
public class LoginActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
...
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
setSupportProgressBarIndeterminateVisibility(true);
}
});
} và stack trace:
10-18 19:38:21.053: E/AndroidRuntime(11206): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.internal.widget.ProgressBarCompat.setVisibility(int)' on a null object reference
10-18 19:38:21.053: E/AndroidRuntime(11206): at android.support.v7.app.ActionBarActivityDelegateBase.updateProgressBars(ActionBarActivityDelegateBase.java:786)
10-18 19:38:21.053: E/AndroidRuntime(11206): at android.support.v7.app.ActionBarActivityDelegateBase.setSupportProgressBarIndeterminateVisibility(ActionBarActivityDelegateBase.java:692)
10-18 19:38:21.053: E/AndroidRuntime(11206): at android.support.v7.app.ActionBarActivity.setSupportProgressBarIndeterminateVisibility(ActionBarActivity.java:327)
10-18 19:38:21.053: E/AndroidRuntime(11206): at com.myapppackage.LoginActivity$2.onClick(LoginActivity.java:82)
Đây là trên Nexus 5 chạy Android 4.4.4. Chủ đề ứng dụng kế thừa từ Theme.AppCompat. Các ứng dụng được xây dựng với Android 5.0 và targetSDK là 21. Khi tôi sử dụng setSupportProgress cho một thanh tiến trình ngang bình thường cùng một điều sẽ xảy ra. Bất kỳ giúp đỡ nhiều đánh giá cao.
EDIT: Đã tìm thấy sự cố. Trong android.support.v7.internal.widget.ToolbarWidgetWrapper:
@Override
public void initIndeterminateProgress() {
Log.i(TAG, "Progress display unsupported");
}
Có thể không phải là lỗi mà là một tính năng? Thanh công cụ dường như là các ActionBars mới.
Tôi có một bản sao của appcompat V20 trên máy tính khác vì vậy tôi sẽ quay lại điều đó.
Xác nhận từ Chris Banes https://chris.banes.me/2014/10/17/appcompat-v21/#comment-1642002459 – Mark
Xin chào, tôi cũng gặp phải vấn đề tương tự. Tôi tin rằng toàn bộ điểm bây giờ là bạn phải tạo thanh tiến trình của riêng bạn bên trong thanh công cụ. Khá nhiều những gì Chris Banes nói. Tôi đang tìm kiếm các giải pháp mà mọi người đã làm nên tôi không mạo hiểm để tạo nên thứ của riêng mình. – lazypig