Android Material Design:ListPopupWindow


Android Material Design引入的ListPopupWindow,首先是一个PopupWindow,不过此PopupWindow内嵌一个List,给予此List设置一个Adapter,就相当Android为开发者做好了一个内置ListView的PopupWindows。

如图所示:

Android Material Design:ListPopupWindow_第1张图片


给出上述效果的代码实现:

package zhangphil.materialdesign;import android.app.Activity;import android.os.Bundle;import android.support.v7.widget.ListPopupWindow;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showListPopupWindow(button);}});}public void showListPopupWindow(View view) {String items[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };ListPopupWindow listPopupWindow = new ListPopupWindow(this);// ListView适配器listPopupWindow.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, items));// 选择item的监听事件listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int pos, long id) {Toast.makeText(getApplicationContext(), "选择:" + pos, Toast.LENGTH_SHORT).show();// listPopupWindow.dismiss();}});// 对话框的宽高listPopupWindow.setWidth(500);listPopupWindow.setHeight(600);// ListPopupWindow的锚,弹出框的位置是相对当前View的位置listPopupWindow.setAnchorView(view);// ListPopupWindow 距锚view的距离listPopupWindow.setHorizontalOffset(50);listPopupWindow.setVerticalOffset(100);listPopupWindow.setModal(false);listPopupWindow.show();}}

activity_main.xml只是一个仅仅含有一个Button的布局,Button用于触发、弹出ListPopupWindow,不在此赘述。

更多相关文章

  1. Android--取得控件在手机屏幕上的位置
  2. Android LBS系列04 位置和地图服务简介
  3. 在Android中使用HTML5本地存储,地理位置,离线应用
  4. adroid 现行布局水平居中位置
  5. 使用Android提供的模拟任意地理位置,报java.lang.IllegalArgument
  6. 可折叠的列表ExpandableListView及其适配器
  7. 【Mood-11】值得学习的国内外Android开发者信息
  8. [置顶] Android中万能适配器
  9. Android学习心得(六)——位置服务

随机推荐

  1. Android(安卓)Studio 创建第一个项目应用
  2. Android(安卓)JNI 使用的数据结构JNINati
  3. Android属性动画ValueAnimator源码简单分
  4. Android之SQlite数据库
  5. Android(安卓)Nine Patch图片及按钮背景
  6. android shelves
  7. 首届 Google 暑期大学生博客分享大赛——
  8. Android(安卓)surfaceflinger学习笔记之f
  9. Android学习之二:使用Android文档帮助
  10. 【Android】“存储”之普通文件存储(内部