8

Popup menu trên thổi phồng đi ra khỏi màn hình cho hoạt động này, hoạt động tốt cho khácđơn Popup đi ra khỏi màn hình

enter image description here

Mở rộng tùy chỉnh AppCompatActivity

Styles:

<style name="AppTheme.ActionBar.TransparentContextTranscition" parent="AppTheme.NoActionBar"> 
    <item name="android:windowActivityTransitions">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:windowContentTransitions">true</item> 
    <item name="android:windowLightStatusBar">true</item> 

    <item name="android:itemBackground">@android:color/white</item> 
    <item name="android:textColor">@android:color/black</item> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
    <item name="android:popupMenuStyle">@style/PopupMenu</item> 
</style> 

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="color">@android:color/white</item> 
</style> 

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
    <item name="android:popupBackground">@android:color/white</item> 
</style> 

Mã Java

holder.contextMenuView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final PopupMenu popup = new PopupMenu(v.getContext(), v); 
      popup.inflate(R.menu.song_item_menu_album_inner_layout); 
     } 
}); 

đơn thổi phồng Toolbar hoạt động tốt

enter image description here

+0

bạn có sử dụng neo không? cũng hiển thị mã java. –

+0

cập nhật @SohailZahid –

+0

Có thể âm thanh ngớ ngẩn, nhưng điều này đã xảy ra với tôi trước đó ngày hôm nay trên một trình mô phỏng, tôi đã kết thúc thử nó trên thiết bị của tôi và nó hoạt động tốt. đã làm sạch và xây dựng lại, vấn đề đã được giải quyết. – ziondreamt

Trả lời

5

Hình như tôi đã sử dụng

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

xấu của tôi. FLAG_LAYOUT_NO_LIMITS, loại bỏ giới hạn cho menu ngữ cảnh. (Đó là lý do, trình đơn ngữ cảnh xuất hiện trên màn hình), Hy vọng sẽ giúp cho ai đó

+0

cách sử dụng FLAG_LAYOUT_NO_LIMITS với trình đơn bật lên, bất kỳ giải pháp nào? –

1

Một menu thả xuống Android chưa-tùy biến đơn giản. Nó hỗ trợ bản có/không có biểu tượng, phân tách, và thậm chí hoàn toàn tùy chỉnh quan điểm

https://github.com/shehabic/Droppy

0

Thật không may popup menu không làm theo kích thước của nó xem là bên trong và đi ra khỏi phạm vi. Tôi đã có cùng một vấn đề trước đây. Và tôi biết nó không phải là giải pháp tốt nhất nhưng ở đây nó đi:

Tạo một giả xem đó là suốt sử dụng như neo để chặn mép từ vượt.

Tuy nhiên vì nó sẽ nổi, bạn không thể đặt nó ở phía trên hoặc phía dưới nên cẩn thận khi chiều cao vượt quá trong khi thử điều này.

Và bằng cách này đừng quên thiết android:anyDensity="True/False"

+0

Làm thế nào tôi có thể đạt được nó, bạn có thể cung cấp cho tôi một số bước –

+0

tốt Tôi không có bố trí đầy đủ của bạn vì vậy tôi không biết làm thế nào LinearLayouts của bạn và nổi mục vv được đặt. Nhưng tôi có thể giải thích ý tưởng chính và bạn sẽ nhận được nó sau đó. do đó, vấn đề là popup không tuân theo các cạnh của bạn, do đó bạn phải thay thế nó ở đâu đó nó sẽ không sao trên giao diện từ bên ngoài phải không? bạn để lại popup ở đó nhưng bạn thổi phồng nó bên trong View khác mà là giả mạo và nằm/nổi) cho phép nói một chút ở phía bên trái. vì vậy khi popupmenu thổi phồng bên trong nó sẽ trông hoàn hảo ở đúng nơi. Bạn lừa gạt outlooking của thiết kế. Chúc may mắn – koksalb

+0

một lần nữa tôi đang nói rằng nó là definetally không phải là giải pháp tốt nhất và nó có vẻ như bạn bỏ vào tài năng mã hóa của bạn và cố gắng để ăn gian. nhưng không phải là tất cả về? để tìm một cách dễ dàng để làm điều gì đó đúng. theo chủ đề nếu ai đó đề xuất giải pháp liên quan đến mã để tôi cũng có thể tìm hiểu và sửa lỗi ứng dụng cũ của tôi. – koksalb

0

Sử dụng này trong mã của bạn final PopupMenu popup = new PopupMenu(v.getContext(), v,Gravity.Right); nếu nó không hoạt động sau đó thay đổi quan điểm neo v. Bởi vì nó có thể thiết lập vị trí của cửa sổ bật lên menu theo yêu cầu của bạn.

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