Android contextmenu 设置布局和大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android contextmenu 设置布局和大小相关的知识,希望对你有一定的参考价值。

怎么对ContextMenu的大小和布局进行设置 ,我想只显现两个菜单项,并且显示在屏幕的中央 ,由于菜单字符串较短,希望设置菜单项的宽度和高度 ,谢谢 !

参考技术A contextmenu在弹出的时候本身就是在中间的!你的字符串太长度太少!那么你可以对你的字符串进行判断,然后补充空格就行了!这样你弹出的菜单就不会那么窄了!但是我感觉系统的东西都不灵活都太丑了!你可以这么干!

在你要点击的弹出contextmenu对话框的view添加一个事件,就是长按事件如:
btn.setOnLongClickListener(new OnLongClickListener()

@Override
public boolean onLongClick(View v)

return false;

);
然后再onLongClick事件里面弹出一个view

你可以用帧布局,你可以把你原来正常的LinearLayout放在真布局里面,要弹出的LineraLayout也就是类似于contextmenu的东西,你放在帧布局的下面,然后使用Layout_Gravity这个属性设置成center,这样你弹出的类似于contextmenu的东西就在中间了!

这个比那个contextmenu 好多了,而且你还可以设置 shape 样式 什么的,你想放什么放什么进去! 让contextmenu见鬼去吧!本回答被提问者采纳

android 中dialog,toast,optionmenu,contextmenu的使用

这几个界面是activity附带主界面之外,开发中常常会用到的界面元素,

dialog,toast的界面都是可以自定义的。 optionmenu和contextmenu 的界面也可自定义,但是没有dialog那么灵活,它只能自定义一些title,item之类的。

1.dialog自定义界面

AlertDialog dialog=new AlertDialog.Builder(MainActivity.this).create();
dialog.setView(view);

2.toast自定义界面

Toast toast= Toast.makeText(MainActivity.this, "abc", Toast.LENGTH_LONG);
toast.setView(new Button(MainActivity.this));
toast.show();

 

3.optionmenu

使用方式

 public boolean onCreateOptionsMenu(Menu menu) 这个函数在只会调用一次,觉得也可以算是activity生命周期的某一部分

public boolean onPrepareOptionsMenu(Menu menu) 这个函数在menu显示之前都会调用

public boolean onOptionsItemSelected(MenuItem item) 在选择摸个item的时候会调用

 

4.contextmenu

contextmenu 需要registe后才能使用,注册到哪个view上,然后长按这个view,框架会回调onCreateContextMenu这个函数

this.registerForContextMenu(txt2);

contextmenu 在每次显示之前都会重新调用onCreateContextMenu

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) //每次显示之前都会调用

public boolean onContextItemSelected(MenuItem item)

 

以上是关于Android contextmenu 设置布局和大小的主要内容,如果未能解决你的问题,请参考以下文章

android 中dialog,toast,optionmenu,contextmenu的使用

Android ListView ContextMenu

Android ContextMenu的使用

Android_(菜单)选项菜单

ContextMenu使用实例

检测哪个选定项目(在 ListView 多列中)产生了 ContextMenu (Android)