如图,长按listview某一项,弹出上下文菜单,目前弹出的菜单在有些位置上不能完全显示,需要滚动菜单的滚动条,如何才能让他完全显示出来。
下面是源码package com.example.contextmunu;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;import android.app.ListActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.ViewCompat;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;public class MainActivity extends ListActivity {
private class ViewHolder {
public TextView index;
public TextView name;

private ViewHolder() {
}
}

private class UserListAdapter extends BaseAdapter {
private List<String> friendList = new ArrayList<String>();

public long getItemId(int i) {
return (long) i;
}

UserListAdapter() {
friendList.add("张三");
friendList.add("李四");
friendList.add("王二麻子");
friendList.add("张三");
friendList.add("李四");
friendList.add("王二麻子");
friendList.add("张三");
friendList.add("李四");
friendList.add("王二麻子");
friendList.add("张三");
friendList.add("李四");
friendList.add("王二麻子");
}

public int getCount() {
return this.friendList.size();
}

public String getItem(int i) {
return (String) this.friendList.get(i);
}

public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder = null;
if (view == null) {
view = View.inflate(MainActivity.this.getApplicationContext(), R.layout.item_users, null);
viewHolder = new ViewHolder();
viewHolder.index = (TextView) view.findViewById(R.id.item_index);
viewHolder.name = (TextView) view.findViewById(R.id.item_name);
view.setTag(viewGroup);
} else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.index.setText(String.valueOf(i + 1));
viewHolder.name.setText(getItem(i));
return view;
}
}

@Override
protected void onResume() {
setListAdapter(new UserListAdapter());
super.onResume();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View arg1, ContextMenuInfo arg2) {
contextMenu.setHeaderTitle("操作");
contextMenu.add(0, 0, 0, "1111111111111");
contextMenu.add(0, 1, 0, "222222222222222222");
contextMenu.add(0, 2, 0, "333333333333333333");
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}