日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑.......

發布時間:2025/3/15 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑....... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

坑1: TabItem添加id屬性,然后用注解綁定,發現找不到,臥槽。。。如下不要去找那個item。用tablayout去動態獲取。

<android.support.design.widget.TabLayoutandroid:id="@+id/fkg_tableyout"android:layout_width="match_parent"android:layout_height="32dp"app:elevation="0dp"app:layout_constraintTop_toTopOf="parent"app:tabGravity="center"app:tabIndicatorHeight="0dp"app:tabMode="fixed"app:tabPaddingEnd="16dp"app:tabPaddingStart="24dp"app:tabSelectedTextColor="@color/green_all_bg"app:tabTextAppearance="@style/MyCustomTextAppearance2"app:tabTextColor="@color/white"><android.support.design.widget.TabItemandroid:id="@+id/dfdsf"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="知識庫" /><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新聞資訊" /></android.support.design.widget.TabLayout>

坑2 - 這是我的方式,目前測試沒有問題: 循環獲取fkg_tableyout.getTabCount()的時候,不要直接在UI線程里面,太早了。雖然可以獲取到,但是此時tab位置不確定,你如果靠第幾個去設置背景,容易出問題。所以建議延遲獲取,或者如下:

HashMap<Integer, TabLayout.Tab> tabList = new HashMap<>();fkg_tableyout.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {// 這里才是加載完后獲取對應位置的數據,不然會錯位的if (tabList.size() <= 0) {for (int i = 0; i < fkg_tableyout.getTabCount(); ++i) {tabList.put(fkg_tableyout.getTabAt(i).getPosition(), fkg_tableyout.getTabAt(i));}}if (0 == tab.getPosition()) {ViewCompat.setBackground(tabList.get(0).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_white_shape));ViewCompat.setBackground(tabList.get(1).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_green_shape));} else {ViewCompat.setBackground(tabList.get(0).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_green_shape2));ViewCompat.setBackground(tabList.get(1).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_white_shape2));}}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {}@Overridepublic void onTabReselected(TabLayout.Tab tab) {}});

3. 建議最好還是動態創建Tab,然后添加,那樣比較靠譜。。 網上有類似動態修改的方式,你可以參考,遇到問題,多調試吧。。我也是折騰了一久。。。

這是Tablayout的配置。。。

<!--app:tabBackground="@drawable/tab_selector"--><android.support.design.widget.TabLayoutandroid:id="@+id/fkg_tableyout"android:layout_width="match_parent"android:layout_height="32dp"app:elevation="0dp"app:layout_constraintTop_toTopOf="parent"app:tabGravity="center"app:tabIndicatorHeight="0dp"app:tabMode="fixed"app:tabPaddingEnd="16dp"app:tabPaddingStart="24dp"app:tabSelectedTextColor="@color/green_all_bg"app:tabTextAppearance="@style/MyCustomTextAppearance2"app:tabTextColor="@color/white"><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:id="@+id/dfdsf"android:layout_height="wrap_content"android:text="知識庫" /><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新聞資訊" /></android.support.design.widget.TabLayout>

效果:

我之前都是動態創建的,哈哈。。這次嘗試了不太一樣的方式.......喵....

總結

以上是生活随笔為你收集整理的android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑.......的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。