1

MenuDropDownListView按下工具栏上的 an 后,S-Pen 无法正确滚动OverflowMenuButton(参见下面的 gif)。

当 S-Pen 接触时,菜单会被强制返回顶部。

这个问题似乎不是MenuDropDownListView. PopupMenuAndroidX库中滚动 a 时也会发生这种情况( androidx.appcompat.widget.PopupMenu)。但是,在使用标准 Android 库 ( )时,这种行为可以正常工作。PopupMenu 场景对我遇到的问题不太重要,但它可能仍然相关。android.widget.PopupMenu

以下 gif 是尝试使用 S-Pen 滚动到列表底部的示例,记录在 Samsung Galaxy Note20(Android 11,stock ROM)上:

滚动溢出菜单不适用于 S-Pen

以下 GIF 尝试滚动到每个 PopupMenu 的底部,记录在三星 Galaxy Note20(Android 11,库存 ROM)上:

Android PopupMenu 滚动行为(工作)

AndroidX PopupMenu 滚动行为(不工作)

OverflowMenu 的代码如下:

res/menu/example_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
>
    <item android:id="@+id/item1"
          android:icon="@drawable/ic_5g"
          android:title="Item 1"
          app:showAsAction="ifRoom"
    />

    <item android:id="@+id/item2"
          android:title="Item 1"
          app:showAsAction="never"
    />

    <item android:id="@+id/item3"
          android:title="Item 3"
          app:showAsAction="never">
        <menu>
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="TOP ITEMS HERE" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />
            <item android:title="Sub Item" />

             <!--  REPEATING...  -->

        </menu>
    </item>


</menu>

MainActivity.java

package com.example.popupmenutest;

import android.view.Menu;
import android.view.MenuInflater;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.example_menu, menu);
        return true;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
4

1 回答 1

0

如果在我的 Galaxy Note 20 Ultra(Android 12)上使用真正的 USB 鼠标,行为相同,所以我认为这是使用指针时引起的错误(鼠标或触控笔在悬停项目时是相同的)。

这可能是由三星实现或androidx 库引起的,但很难说它们中的哪一个......而且我认为这在我们这边是无法解决的。

于 2022-01-20T11:52:54.450 回答