2012-07-18 32 views
13

Tôi hiện đang phát triển một ứng dụng có lịch biểu có thể được truy xuất và xem. Để hiển thị lịch biểu, tôi đã sử dụng các tệp nguồn java TimeRulerView (và BlocksLayout và BlockView) từ ứng dụng Google IO 2011 vì tôi thích giao diện. Bạn có thể tìm thấy mã nguồn tại đây: https://github.com/underhilllabs/iosched2011. (Google thay thế có một với mã IO2012).Xem (s) không hiển thị trên Android Jelly Bean

Kể từ khi Galaxy Nexus cập nhật hết Jelly Bean (4.1.1) ngày hôm qua, TimeRulerView (và/hoặc một trong số những người khác) không được hiển thị nữa.

Điều kỳ lạ là chúng thực sự vẫn còn ở đó, nhưng không hiển thị. Tôi có thể thấy một thanh cuộn có độ dài bộ đếm thời gian thường có. Ngoài ra khi tôi thường bấm vào một khối trong giao diện, tôi nhận được một cửa sổ pop-up nhỏ, và điều này vẫn xảy ra khi không nhìn thấy bộ đếm thời gian hoặc một khối.

Tôi đã thử nghiệm ứng dụng IO2011 gốc trên JB GN nhưng không có gì hiển thị ở đó, vì vậy vấn đề nằm trong (một trong) chế độ xem hoặc cách JellyBean hiển thị (các) chế độ xem (dự án bơ có thể ?).

Xem tại đây (https://dl.dropbox.com/u/7102660/TimeRulerView_JellyBean_problem.zip) cho ảnh chụp màn hình trên ICS (ứng dụng hoạt động), JB (ứng dụng không hoạt động) và ứng dụng GoogleIO2011.

+0

Tôi gặp vấn đề tương tự với ImageViews. Kể từ khi cập nhật cho đậu thạch, các hình ảnh sẽ không hiển thị nữa. Mặc dù không gian bố trí được tính toán đúng .. (tôi thao tác chúng trong getView của mảng tùy chỉnh) – eftokay83

+2

Sử dụng công cụ phân cấp để xem giới hạn của chế độ xem của bạn. Bạn sẽ tìm hiểu nếu nó có không có chiều rộng/chiều cao, hoặc nếu có vấn đề với quan điểm con của nó, hoặc nếu nó có kích thước tính toán chính xác, và nội dung chỉ là không vẽ. Với thông tin này bạn có thể tiếp tục. –

Trả lời

4

Nhờ Chris trả lời Tôi đã chơi xung quanh với cài đặt tăng tốc phần cứng. Tôi cũng sử dụng mã iosched2011 và chỉ phải xóa dòng android:layerType="software" từ Chế độ xem BlocksLayout của tôi bên trong tệp block_content.xml.

+0

Giải pháp này là thứ cuối cùng khiến cho các chế độ xem tùy chỉnh của tôi xuất hiện, nhưng một số trong số đó bị lỗi hoặc hiển thị sai. Tôi phải thêm android: hardwareAccelerated = "false" vào hoạt động trong tệp kê khai để mọi thứ bắt đầu hoạt động bình thường trở lại. – SilithCrowe

7

Đây có phải là điều cần làm với Hardware acceleration không? Tôi vừa mới gặp phải sự cố trên vài điện thoại có ICS, nhưng không phải tất cả điện thoại/thiết bị đều bị ảnh hưởng. Thêm thẻ hardwareAccelerated vào tệp kê khai của tôi cũng không khắc phục được sự cố và tôi phải xác định nó trên các chế độ xem cụ thể mà tôi không muốn tăng tốc phần cứng. Giải pháp của tôi đã sử dụng android:layerType = "phần mềm" trong bố cục xml của tôi và setLayerType (LAYER_TYPE_SOFTWARE, null) trong mã java.

EDIT: Thử nghiệm điều này nhiều hơn, nó không khắc phục được sự cố của tôi bằng cách sử dụng setLayerType trên Jelly Bean. Việc đặt loại lớp thành phần mềm trên ICS đã khắc phục được sự cố của tôi. Cách duy nhất tôi có thể làm cho lượt xem hiển thị là đặt toàn bộ ứng dụng hoặc hoạt động cụ thể thành android:hardwareAccelerated="false".

+0

android: hardwareAccelerated = "false" là thứ cuối cùng đã giải quyết điều này cho tôi, cùng với giải pháp của Stefan Arn. – SilithCrowe

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