1. 程式人生 > >PopupWindow中在彈出PopupWindow崩潰報錯,解決方案

PopupWindow中在彈出PopupWindow崩潰報錯,解決方案

主要是popupWindow不能以第一個popupWindow中的view作為錨點View,要想實現popupWindow上再彈出popupWinow就要兩個都用Activity上的view作為錨點View就可以了,要實現的話就要把Activity中的view通過第一個popupWindow傳過去,所以就要重寫或封裝一下第一個popupWindow,當然第一個或第二彈窗改用dialog實現也可以,這樣更簡單。這裡就說一下兩個都是popupWindow的實現方法。

public class FirstPopupWindow implements View.OnClickListener{
    private View anchorView;

    public FirstPopupWindow(View anchorView){
        //傳入activity中的view作為錨點view
        this.anchorView=anchorView;
    }
    public void show(){
        View firstView= LayoutInflater.from(activity).inflate(R.layout.first_popupwindow, false);
        TextView tv=(TextVeiw)firstView.findViewById(R.id.tv);
        tv.setOnClickListener(this);
        PopupWindow firstPopupWindow= new PopupWindow(firstView);
        //第一個popupwindow用的錨點view是anchorView
        firstPopupWindow.showAsDropDown(anchorView);
    }

    public void onClick(View v){
        switch (v.getId()){
            case R.id.tv:
                 //secendView的佈局就一個TextView,id是tv
                View secendView = LayoutInflater.from(activity).inflate(R.layout.secend_popupwindow, false);
               PopupWindow secendPopupWindow= new PopupWindow(secendView);
                //第二個popupwindow用的錨點view也是anchorView
                secendPopupWindow.showAsDropDown(anchorView);
                break;
        }

    }
}

相關推薦

PopupWindow中在彈PopupWindow崩潰解決方案

主要是popupWindow不能以第一個popupWindow中的view作為錨點View,要想實現popupWindow上再彈出popupWinow就要兩個都用Activity上的view作為錨點View就可以了,要實現的話就要把Activity中的view通過第一個pop

docker沒有關閉重啟服務器解決方案

docker● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)

建立SpringCloud註冊中心eureka解決方案

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT、程式設計案例、資料請聯絡QQ:1280023003 ,群:298140694 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 報錯資訊如下: org

org.gradle.api.tasks.TaskExecutionException: Execution failed for task 解決方案

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest'.     at org.gradle.api.internal.tasks.e

C++ 呼叫MATLAB引擎 在memcpy處解決方案

在用C++呼叫MATLAB做數值計算的時候,遇到了記憶體越界報錯 ... y1 = mxCreateDoubleMatrix(1, N, mxREAL); memcpy((void*)mxGetPr(

epel安裝第三方擴展源後運行yum解決方案

https ora repos all tle meta num mir ins yum安裝報錯:Cannot retrieve metalink for repository: epel. Please verify its path and try again

vue移動端使用Clipboard複製貼上動態的資料總是解決辦法

點選複製連結按鈕即可複製 實現過程: 下載 npm install clipboard --save 引入到需要的元件中 import Clipboard from "clipboard"; 3.1 實現程式碼:template部分

在eclipse上寫maven專案時pom.xml檔案第一行一直解決辦法

  在pom.xml裡面加上一下即可,個人意見 <properties>             <maven-jar-plugin.ver

使用ajax下載Excel解決方法如下

一.開始的時候程式碼類似這種寫法 $.ajaxFileUpload({ url: '${root}/manage/custIcCard/uploadExcel?projectCode=' + projectCode + '&icType=' + icType,

執行hive解決經歷

今天執行hive,因為hadoop原來為分散式,然後改成偽分散式後,執行hive報錯 初步判斷是由於HA節點中處於standby狀態造成的異常 Operation category READ is not supported in state standby 關閉後stop-all.sh

安裝docker成功後啟動docker解決方法

[[email protected] ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. Se

maven install 解決Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile

在碰到maven install 發現報錯 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on projec

Eclipse匯入專案之後專案解決辦法

有時候匯入了一個專案之後,專案就會報錯,到處都是紅叉,下面是解決辦法。 1.Java執行環境不一致。 在專案名上右鍵-->Build Path  -->Configuer  Build

Spring MVC不進入Controller404解決方案

1、檢查URL是否會被springmvc攔截 首先檢查訪問路徑URL是否正確被springmvc攔截,這個URL和web.,xml中對springmvc的配置有關。 2、檢查Con

Hadoop Jar 執行HBase類的解決方法

問題如下: [[email protected] ~]# hadoop jar testHBase-1.0-SNAPSHOT.jar com.qf.hbase.hbasewordcount.HBaseWordCountApp /tmp/hbase-root/hba

安裝xgboost解決方案

看了一些教程,直接在anaconda prompt 中輸入“”,結果報錯: UnsatisfiableError: The following specifications were found to be in conflict:   - numpy-base   -

vc++6.0對STL的不完全支援定義 set,map解決

報錯: warning C4786: 'std::reverse_bidirectional_iterator<std::_Tree<int,std::pair<int const ,int>,std::map<int,int,std::les

ActiveMq執行解決方法

<transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> <tra

spring mvc開發接收日期欄位表單提交自動轉換成Date型別解決辦法

User中有birthday(Date)屬性,使用者註冊的時候,選擇日期即可,然後提交表單,可spring mvc 報錯,意思是不能把字串轉為Date型別的。如果是strtus的話,壓根不是問題,怎麼到spring mvc就不行了呢,可能有好的解決辦法 方法一:實體類中加日

交叉編譯解決方法

首先要將交叉編譯工具安裝好,在/etc/profile中設定好路徑。 1、確保要編譯的原始碼不要在虛擬機器的共享資料夾目錄,否則會報連線錯誤(ld: fail...) 2、 /bin/bash: /usr/local/cross_compiler/Linux-devkit/