gpt4 book ai didi

android - 如何将弹出菜单项的方向从右更改为左?

转载 作者:行者123 更新时间:2023-11-29 15:36:02 25 4
gpt4 key购买 nike

我知道这个问题被问过很多次,我使用了很多解决方案,但它对我不起作用。我想使用 PopupMenu 的方向更改为 rtl,但它不起作用。

我的菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android"
android:layoutDirection="rtl">
<item
android:id="@+id/more"
android:title="@string/menue" />
<item
android:id="@+id/rate"
android:title="@string/rate"/>
<item
android:id="@+id/share"
android:title="@string/share" />

我的弹出窗口

imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup = new PopupMenu(MainActivity.this, imageButton );
popup.getMenuInflater().inflate(R.menu.app_menue, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.more:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(res.getString(R.string.moreApps)));
startActivity(intent);
break;
case R.id.rate:
Intent intent1 = new Intent(Intent.ACTION_VIEW);
intent1.setData(Uri.parse(res.getString(R.string.rateApp)));
startActivity(intent1);
break;
case R.id.share:
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
String shareBody = "Share our app";
myIntent.putExtra(Intent.EXTRA_SUBJECT, shareBody);
myIntent.putExtra(Intent.EXTRA_TEXT, res.getString(R.string.shareApp));
startActivity(Intent.createChooser(myIntent, "Share using"));
break;
}
return true;
}
});
popup.show();
}
});

在我的 Manifest

    android:supportsRtl="true"

最佳答案

我找到了解决方案。

我的风格是这样的

<style name="menuStyle">
<item name="android:layoutDirection">rtl</item>
</style>

然后添加这段代码

Context myContext = new ContextThemeWrapper(MainActivity.this,R.style.menuStyle); 
PopupMenu popupMenu = new PopupMenu(myContext , myView);

关于android - 如何将弹出菜单项的方向从右更改为左?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901594/

25 4 0