91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

NavigationView的頭部的事件監聽

發布時間:2020-06-23 03:11:03 來源:網絡 閱讀:750 作者:lzwxx 欄目:移動開發

現在App的UI設計中Drawerlayout+NavigationView是一個比較常用的設計了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件監聽,而今天碰到一個需要是要在header中增加事件監聽。

  需求如下:點擊圖片,在底部彈出一個彈出窗口。

  NavigationView的頭部的事件監聽

   側邊導航欄布局:

NavigationView的頭部的事件監聽

 <!--側邊導航欄-->
    <android.support.design.widget.NavigationView        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/menu_nav"
        />

NavigationView的頭部的事件監聽

NavigationView的頭部的事件監聽

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:padding="10dp"
    android:background="?attr/colorPrimary">

    <de.hdodenhof.circlep_w_picpathview.CircleImageView        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/account"
        android:src="@drawable/ic_account"
        android:layout_centerInParent="true" />
    <TextView        android:id="@+id/qianming"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:textSize="16sp"
        android:text="學好英語走遍天下"
         /></RelativeLayout>

NavigationView的頭部的事件監聽

  那顯然我們得要獲取到這個p_w_picpath的id,從而給它設置點擊事件監聽。

  然而,當我用ButterKnife去綁定它的時候,直接就報錯了

NavigationView的頭部的事件監聽

也對,這個時候側邊欄還沒有打開

  接下來我就想著要在側邊欄打開的情況下去獲取到這個id,怎么監聽側邊欄是否打開呢,我嘗試了這個方法

NavigationView的頭部的事件監聽

  (竊喜),在onDrawerOpened中寫入進行一波findViewById操作應該就可以了吧。

  然并卵。。。

  點擊頭像毫無反應。

  最后,那我們就不在xml中靜態導入header了還不行嗎,我們直接在代碼中直接導入header的布局,然后再來獲取它里面圖片的id,并為其設置事件監聽,終于KO。

此處需要刪除原先的這一行:

app:headerLayout="@layout/nav_header_main"

NavigationView的頭部的事件監聽

 <!--側邊導航欄-->
    <android.support.design.widget.NavigationView        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        
        app:menu="@menu/menu_nav"
        />

NavigationView的頭部的事件監聽

onCreate()中加入下面代碼:

NavigationView的頭部的事件監聽

 View drawerView = navigationView.inflateHeaderView(R.layout.nav_header_main);
        CircleImageView account = (CircleImageView) drawerView.findViewById(R.id.account);
        account.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                bottomPopupOption = new BottomPopupOption(TabHostActivity.this);
                bottomPopupOption.setItemText("拍照","選擇相冊");
                bottomPopupOption.showPopupWindow();
            }
        });

NavigationView的頭部的事件監聽

最終的效果圖:

 NavigationView的頭部的事件監聽


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通州区| 桑日县| 普兰县| 海伦市| 从江县| 柘城县| 博野县| 德州市| 文安县| 庆元县| 天全县| 花莲县| 晋江市| 汕头市| 仁怀市| 峨山| 寿阳县| 济宁市| 洛隆县| 枣强县| 沧州市| 大同市| 麻阳| 府谷县| 江口县| 钟祥市| 扎兰屯市| 宁夏| 西乌珠穆沁旗| 莎车县| 聂拉木县| 西平县| 航空| 扶沟县| 滦平县| 石屏县| 天门市| 察雅县| 台东市| 东台市| 双鸭山市|