2016-11-29 19 views
5

Tôi có một ứng dụng với một listview đơn giản và menu ngữ cảnh trong đó. trước android 7, mọi thứ trông ok:ContextMenu vị trí được điều sai lầm trong Android 7

khi nhấp một mục ở dưới cùng của danh sách: enter image description here

khi nhấp một mục ở phía trên cùng của danh sách: enter image description here

Nhưng wit android 7 ...

khi nhấp một mục ở dưới cùng của danh sách: enter image description here

khi nhấp vào một mục ở đầu danh sách: enter image description here

Có thay đổi nào trong vị trí của menu ngữ cảnh không?

+3

Trông giống như lỗi hệ điều hành. Giá trị của "Số bản dựng" trong Cài đặt> Giới thiệu về điện thoại là gì? – alanv

+0

Làm thế nào để bạn hiển thị menu ngữ cảnh này? Bạn có thể đăng mã không? – g4s8

+1

chào mừng bạn đến với android! – sector11

Trả lời

7

Tôi đã tìm thấy giải pháp cho điều này ở đâu đó (không thể nhớ vị trí). Sự cố nằm giữa menu ngữ cảnh mới và chủ đề Holo.

Giải pháp chi tiết:

Tôi đã thêm một phong cách trong thư mục các giá trị-v24 trông giống như:

<resources> 

<style name="ContextPopupMenuStyleLight" parent="@android:style/Widget.Holo.Light.PopupMenu"> 
    <item name="android:overlapAnchor">true</item> 
</style> 

<style name="ContextPopupMenuStyleDark" parent="@android:style/Widget.Holo.PopupMenu"> 
    <item name="android:overlapAnchor">true</item> 
</style> 

<style name="AppTheme" parent="AppTheme.Common" > 
    <item name="android:contextPopupMenuStyle">@style/ContextPopupMenuStyleLight</item> 
</style> 

Sau đó, trong styles.xml mặc định của tôi, tôi sử dụng một phong cách được gọi là

AppTheme.Common 

Điều đó xác định tất cả của tôi kiểu ứng dụng và kiểu trống rỗng được gọi là

<style name="AppTheme" parent="AppTheme.Common" /> 

và tôi đã sử dụng kiểu trống đó làm kiểu ứng dụng mặc định. Bằng cách này, trên phiên bản> 24, ứng dụng sử dụng mục bổ sung này liên quan đến menu ngữ cảnh chồng chéo neo để khắc phục sự cố (đưa trình đơn ngữ cảnh vào giao diện trước API 24)

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