Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android popupwindow 模擬新浪、騰訊title選項卡

android popupwindow 模擬新浪、騰訊title選項卡

編輯:關於Android編程

 首先在上節中是使用dialog 實現的,(點擊連接),現在我就講些popupwindow 的實現,這個相對dialog比較簡單,因為不用自定義dialog.
     實現代碼很簡單如下:
    代碼片段:
    
[java] 
public void showPopupWindow(int x, int y) { 
        layout = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate( 
                R.layout.dialog, null); 
        listView = (ListView) layout.findViewById(R.id.lv_dialog); 
        listView.setAdapter(new ArrayAdapter<String>(MainActivity.this, 
                R.layout.text, R.id.tv_text, title)); 
 
        popupWindow = new PopupWindow(MainActivity.this); 
        popupWindow.setBackgroundDrawable(new BitmapDrawable()); 
        popupWindow 
                .setWidth(getWindowManager().getDefaultDisplay().getWidth() / 2); 
        popupWindow.setHeight(300); 
        popupWindow.setOutsideTouchable(true); 
        popupWindow.setFocusable(true); 
        popupWindow.setContentView(layout); 
        // showAsDropDown會把裡面的view作為參照物,所以要那滿屏幕parent 
        // popupWindow.showAsDropDown(findViewById(R.id.tv_title), x, 10); 
        popupWindow.showAtLocation(findViewById(R.id.main), Gravity.LEFT 
                | Gravity.TOP, x, y);//需要指定Gravity,默認情況是center. 
 
        listView.setOnItemClickListener(new OnItemClickListener() { 
 
            @Override 
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
                    long arg3) { 
                button.setText(title[arg2]); 
                popupWindow.dismiss(); 
                popupWindow = null; 
            } 
        }); 
    } 
  
[java] 
button.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                button.getTop(); 
                int y = button.getBottom() * 3 / 2; 
                int x = getWindowManager().getDefaultDisplay().getWidth() / 4; 
 
                showPopupWindow(x, y); 
            }   www.2cto.com
        }); 


    

樣子我就不貼了,和前面一章dialog顯示的一樣.
在這裡遇到個小問題:int y = button.getBottom() * 3 / 2;這裡獲取的y坐標應該是 button.getBottom();可是這樣寫popupwindow就顯示位置不對了,在button中間,不知道為什麼。
   如果知道為什麼了通知我一下,共同學習嘛,先謝謝了。
 


作者:jj120522
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved