gpt4 book ai didi

java - Android OnCreateOptionsMenu 项目与 actionLayout 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:50 25 4
gpt4 key购买 nike

我需要在我的选项菜单中显示一个布局。

菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_likes"
android:showAsAction="never"
android:actionLayout="@layout/likes_layout"/>

<item
android:id="@+id/settings"
android:showAsAction="never"
android:title="Settings"
/>
</menu>

shape_notification.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:color="#080808" android:width="2dp"/>
<corners android:radius="5dp" />
<solid android:color="#85ea32"/>
</shape>

likes_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:id="@+id/likes"
android:linksClickable="false"
android:text="Likes"
android:gravity="center_vertical|center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:layout_gravity="center"
android:id="@+id/notif_count"
android:background="@drawable/shape_notification"
android:text="0"
android:textSize="16sp"
android:gravity="center"
android:padding="2dp"
android:singleLine="true"
android:layout_margin="5dp"
android:textColor="#fff"/>
</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

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

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

return true;
}
}

选项列表可见。设置项是可见的,但喜欢布局是空白的。

有没有人做过隐藏元素的 Action 布局?请帮助我

最佳答案

android:actionLayout 更改为 app:actionLayout 这样您的菜单项声明应该看起来像

  <item
android:id="@+id/action_likes"
app:showAsAction="never"
app:actionLayout="@layout/likes_layout"/>

更新:

您必须使用 PopupWindow 创建自定义下拉菜单。需要实现以将其存档的代码 fragment :

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="project.com.example.MainActivity"

>
<item
android:id="@+id/item1"
android:title="@string/action_settings"
android:icon="@drawable/ic_launcher"
app:actionViewClass="android.widget.ImageButton"
app:showAsAction="always">

<menu>
</menu>
</item>

</menu>

MainActivity.java

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
locButton = (ImageButton) menu.findItem(R.id.action_settings).getActionView();
locButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupWindow popupwindow_obj = popupDisplay();
popupwindow_obj.showAsDropDown(locButton, -40, 18);
}
});
return true;
}
public PopupWindow popupDisplay()
{

final PopupWindow popupWindow = new PopupWindow(this);

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = inflater.inflate(R.layout.listViewLayout, null);
ListView listView=(ListView)view.findViewById(R.id.list);
// populate listview with custom view which will be shown in drow down menu
popupWindow.setFocusable(true);
popupWindow.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popupWindow.setContentView(view);

return popupWindow;
}

希望对您有所帮助。

关于java - Android OnCreateOptionsMenu 项目与 actionLayout 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com