Menu菜单和PopupWindow

Dialog和PopupWindow的异同点

1、Popupwindow在显示之前一定要设置宽高,Dialog无此限制

2、Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true);而在点击back的时候,Dialog会消失

3、Popupwindow不会给页面其他的部分添加蒙层,而Dialog会

4、Popupwindow没有标题,Dialog默认有标题,可以取消标题

5、二者显示的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER

6、二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));去掉

//PopupMenu菜单

package com.example.app4;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
textView = (TextView) findViewById(R.id.text1);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopupMenu();
}
});

}

private void showPopupMenu() {
    PopupMenu popupMenu = new PopupMenu(this, textView);
    popupMenu.inflate(R.menu.menu);
    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            int id=item.getItemId();
            switch (id){
                case R.id.blue:
                    textView.setTextColor(Color.parseColor("#2239A2"));
                    break;
                case R.id.green:
                    textView.setTextColor(Color.parseColor("#1BA233"));
                    break;
                case R.id.red:
                    textView.setTextColor(Color.parseColor("#A21C31"));
                    break;

            }

            return false;
        }
    });
    popupMenu.show();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值