Android 仿樂有家app找房標(biāo)簽過濾篩選

先看樂有家app過濾搜索標(biāo)簽欄


image.png

具體功能如下
1.點(diǎn)擊某一個標(biāo)簽后,打開一個PopupWindow彈窗,如果選中PopupWindow中的某一個選項栈暇,那么選中文本顯示在對應(yīng)的標(biāo)簽欄中
2.選中后脾猛,標(biāo)簽要紅色高亮(圖標(biāo)同理),此時再次點(diǎn)擊該標(biāo)簽贤姆,保持高亮榆苞,如果在PopupWindow取消選中,恢復(fù)原本標(biāo)簽和默認(rèn)狀態(tài)

分析完直接開搞

一開始感覺就是單選標(biāo)簽 直接上適配器霞捡,點(diǎn)擊的時候清空其他選中就行了坐漏,沒啥難的,下面是我適配器的布局
開始覺得沒必要用單個textview來做,即drawableRight在右側(cè)添加箭頭圖標(biāo),用ImageView很靈活仙畦,可以控制圖片大小間距输涕,還有一張白色圖(附著顏色+旋轉(zhuǎn)角度)就可以完成

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        >
        <TextView
            android:id="@+id/tv_quyu1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="區(qū)域"
            />
        <ImageView
            app:tint="@color/gray_color"
            android:layout_width="@dimen/dp_10"
            android:layout_height="8dp"
            android:layout_marginLeft="5dp"
            android:src="@mipmap/arrow_up"
            android:rotation="180"
            />
    </LinearLayout>

事實證明這種布局不行,當(dāng)你選中的文本超出之后慨畸,文字會顯示缺失莱坎,是前面的文本缺失,一個字只顯示一半寸士,這明顯是不行的
下面的圖 是樂有家app正常的狀態(tài)


image.png

研究了很久 還是無法解決這個問題檐什,有時圖標(biāo)直接被擠出,完全看不見

最后 不得不服弱卡, 使用TextView的 drawableRight來實現(xiàn)乃正。

這種方式,TextView的寬度是減掉drawableRight圖標(biāo)的婶博,即使文本超出瓮具,圖標(biāo)能正常顯示,文本只有超出部分被省略號代替凡人,前面可以完整顯示,修改之后的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:drawablePadding="2dp"
        android:drawableRight="@drawable/ic_dn"
        android:gravity="center"
        android:ellipsize="end"
        android:maxLines="1"
        android:singleLine="true"
        android:text="66666"
        android:textColor="#222222" />
</FrameLayout>

這種也有去缺點(diǎn)名党,更改圖標(biāo)比較麻煩,需要準(zhǔn)備四張圖片
1.未選中PopupWindow選項 未打開
2.未選中PopupWindow選項 打開
3.選中PopupWindow選項 未打開
4.選中PopupWindow選項 打開
彈出PopupWindow挠轴,如果點(diǎn)擊空白處传睹,標(biāo)簽需要同步關(guān)閉,效果如下


標(biāo)簽.gif

1.增加三級列表選擇

這里直接采用三個RecyclerView來做岸晦,點(diǎn)擊item的時候做一下數(shù)據(jù)同步即可


標(biāo)簽-三級列表.gif

高仿版--其他布局也不難 就不一一改了欧啤,實際根據(jù)自己需求來

標(biāo)簽-高仿版.gif

使用方式

一、引入依賴

implementation 'com.gitee.Pino_W:tag_group:v1.0.0'

二启上、布局引入

<com.uni.taggroupview.TagGroupView
        android:id="@+id/tag_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         />

三邢隧、代碼設(shè)置數(shù)據(jù)

public class MainActivity extends AppCompatActivity {
    TagGroupView tagGroupView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tagGroupView=findViewById(R.id.tag_view);
        findViewById(R.id.btn).setOnClickListener(view -> {
            tagGroupView.selectTextHighLight("賦值并高亮狀態(tài)");
        });

        String[] tag = new String[]{"區(qū)域", "價格", "戶型", "更多"};
        // 設(shè)置數(shù)據(jù)
        tagGroupView.setData(tag);
        // 監(jiān)聽點(diǎn)擊
        tagGroupView.setOnTabChangeListener((v, index, isOpen) -> {

        });
        // 修改標(biāo)簽文本并高亮--索引為最后點(diǎn)擊的
        // tagGroupView.selectTextHighLight();
        // 恢復(fù)初始值 包含圖標(biāo)方向+圖標(biāo)顏色
        // tagGroupView.defaultStatus();
        // 圖標(biāo)恢復(fù)關(guān)閉狀態(tài)--顏色保持
        // tagGroupView.closeIocn();
    }
}

最后 gitee傳送門 https://gitee.com/Pino_W/tag_group

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碧绞,隨后出現(xiàn)的幾起案子府框,更是在濱河造成了極大的恐慌,老刑警劉巖讥邻,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迫靖,死亡現(xiàn)場離奇詭異,居然都是意外死亡兴使,警方通過查閱死者的電腦和手機(jī)系宜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來发魄,“玉大人盹牧,你說我怎么就攤上這事俩垃。” “怎么了汰寓?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵口柳,是天一觀的道長。 經(jīng)常有香客問我有滑,道長跃闹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任毛好,我火速辦了婚禮望艺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肌访。我一直安慰自己找默,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布吼驶。 她就那樣靜靜地躺著惩激,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蟹演。 梳的紋絲不亂的頭發(fā)上咧欣,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機(jī)與錄音轨帜,去河邊找鬼。 笑死衩椒,一個胖子當(dāng)著我的面吹牛蚌父,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毛萌,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼苟弛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阁将?” 一聲冷哼從身側(cè)響起膏秫,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎做盅,沒想到半個月后缤削,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹榴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年亭敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片图筹。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡帅刀,死狀恐怖让腹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扣溺,我是刑警寧澤骇窍,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站锥余,受9級特大地震影響腹纳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哈恰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一只估、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧着绷,春花似錦蛔钙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至彬向,卻和暖如春兼贡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娃胆。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工遍希, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人里烦。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓凿蒜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胁黑。 傳聞我的和親對象是個殘疾皇子废封,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容