簡體   English   中英

單擊按鈕時顯示列表視圖:Android

[英]Showing a List View when a button is clicked: Android

我試圖在單擊按鈕時實現一個下拉列表。

因此,我在導航欄(nav.xml)中有一個文本視圖和一個按鈕,以及一個對應的列表視圖。 此導航欄包含在另一個頁面中(products.xml)

當單擊按鈕時,我將在按鈕下方獲得列表視圖(這是我要實現的目標),但是我將當前頁面上的所有內容向下移動,即使放在導航欄中的文本視圖也向下移動。

我對Android完全陌生,沒有任何示例示例或如何實現它的方法?

聽起來好像您需要Spinner 這相當於Android的下拉列表。 您可以在此處找到示例。

因此,出於我們的需要,我們需要使用ListPopupWindow。 官方說明鏈接:

http://developer.android.com/reference/android/widget/ListPopupWindow.html

讓我們深入研究代碼:

我們有自己的方法:

    public void downloadBtnSelected(View anchor) {
            final ListPopupWindow lpw = new ListPopupWindow(this);
            String[] data = { ".png", ".pdf", ".jpg", ".jpeg" };
            PopupAdapter pa = new PopupAdapter(data, this);
            lpw.setAdapter(pa);

            //setting up an anchor view
            lpw.setAnchorView(anchor);

            //Setting measure specifications. I'v used this mesure specs to display my
            //ListView as wide as my anchor view is
            lpw.setHeight(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
            lpw.setWidth(anchor.getRight() - anchor.getLeft());

            // Background is needed. You can use your own drawable or make a 9patch.
            // I'v used a custom btn drawable. looks nice.
            lpw.setBackgroundDrawable(this.getResources().getDrawable(
                    android.R.drawable.btn_default));

            // Offset between anchor view and popupWindow
            lpw.setVerticalOffset(3); 

            lpw.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                              /// Our action.....
                    lpw.dismiss();

                }
            });
            lpw.show();

        }

和帶有onClickListener的按鈕來調用此方法:

Button btn = new Button(this);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                downloadBtnSelected(v);

            }
        });

我們傳遞View v參數作為錨點,以使PopupWindow知道在何處顯示自身。 如果下方有足夠的空間,它將顯示在錨點視圖的左下角。 如果沒有,它將顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM