国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

自定義Dialog之底部彈出Dialog

2019-11-09 17:20:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

先預(yù)覽下效果:

自定義Dialog,設(shè)置Dialog居于底部并且和屏幕一樣寬:

public class BottomStyleDialog extends Dialog implements OnItemClickListener {    PRivate String[] mNames = new String[] {            "我是條目1", "我是條目2", "我是條目3", "我是條目4", "我是條目5","我是條目6","我是條目7"    };    private ListView mLv;    private ArrayList<StyleItem> mList = new ArrayList<StyleItem>();    private StyleAdapter mAdapter;    public BottomStyleDialog(Context context) {        // 在構(gòu)造方法里, 傳入主題        super(context, R.style.BottomDialogStyle);        // 拿到Dialog的Window, 修改Window的屬性        Window window = getWindow();        window.getDecorView().setPadding(0, 0, 0, 0);        // 獲取Window的LayoutParams        LayoutParams attributes = window.getAttributes();        attributes.width = LayoutParams.MATCH_PARENT;        attributes.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;        // 一定要重新設(shè)置, 才能生效        window.setAttributes(attributes);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.view_dialog);        initView();        initData();    }    private void initView() {        mLv = (ListView) findViewById(R.id.lv_view_dialog);        mLv.setOnItemClickListener(this);    }    private void initData() {        // 填充數(shù)據(jù)集合        for (int i = 0; i < mNames.length; i++) {            StyleItem styleItem = new StyleItem();            styleItem.mName = mNames[i];            mList.add(styleItem);        }        mAdapter = new StyleAdapter(getContext(), mList);        mLv.setAdapter(mAdapter);    }    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        mAdapter.notifyDataSetChanged();    }}styles中定義Dialog的樣式及其進(jìn)入和退出動(dòng)畫

<!-- 自定義Dialog主題 --><style name="BottomDialogStyle" parent="@android:style/Theme.Dialog">	<item name="android:windowNoTitle">true</item>	<item name="android:windowBackground">@android:color/white</item>	<item name="android:windowAnimationStyle">@style/BottomDialogAnimation</item></style><!-- 自定義Dialog動(dòng)畫 --><style name="BottomDialogAnimation">	<item name="android:windowEnterAnimation">@anim/input_method_enter</item>	<item name="android:windowExitAnimation">@anim/input_method_exit</item></style>Dialog中使用的Adapter:

public class StyleAdapter extends BaseAdapter {    private Context mContext;    private ArrayList<StyleItem> mList;    public StyleAdapter(Context context, ArrayList<StyleItem> list) {        mContext = context;        mList = list;    }    @Override    public int getCount() {        return mList.size();    }    @Override    public StyleItem getItem(int position) {        return mList.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder holder;        if (convertView == null) {            convertView = View.inflate(mContext, R.layout.item_dialog_style, null);            holder = new ViewHolder();            holder.tvName = (TextView) convertView.findViewById(R.id.tv_item_dialog_name);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        StyleItem item = getItem(position);        holder.tvName.setText(item.mName);        return convertView;    }    static class ViewHolder {        TextView tvName;    }}點(diǎn)擊展示Dialog

BottomStyleDialog bottomStyleDialog = new BottomStyleDialog(MainActivity.this);bottomStyleDialog.show();代碼GitHub地址


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卫辉市| 广南县| 韶山市| 鄂托克旗| 鹤壁市| 平罗县| 阳泉市| 永泰县| 玉树县| 富川| 金平| 彰化市| 南木林县| 宿迁市| 茶陵县| 保康县| 万安县| 中超| 吴忠市| 克什克腾旗| 库尔勒市| 荣成市| 南漳县| 融水| 博湖县| 林西县| 灵璧县| 桐乡市| 来凤县| 中江县| 绥阳县| 洛阳市| 遂溪县| 西峡县| 临安市| 静海县| 含山县| 吴江市| 莲花县| 安达市| 荣成市|