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

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

自定義Dialog之底部彈出Dialog

2019-11-09 18:27:20
字體:
來(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)畫(huà)

<!-- 自定義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)畫(huà) --><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ā)表
主站蜘蛛池模板: 武宁县| 揭东县| 内乡县| 六安市| 油尖旺区| 商城县| 唐山市| 芦山县| 沿河| 综艺| 拜泉县| 高青县| 汝城县| 轮台县| 邢台市| 楚雄市| 贵阳市| 井研县| 颍上县| 六枝特区| 白玉县| 临海市| 哈密市| 祁阳县| 北流市| 黄大仙区| 绥棱县| 合阳县| 沭阳县| 舒兰市| 义马市| 郧西县| 平昌县| 英德市| 武城县| 长治市| 湖南省| 阿荣旗| 辰溪县| 温宿县| 延安市|