利用Toast實(shí)現(xiàn)新浪微博的提示欄

前言

最近在ReView之前項(xiàng)目的代碼醉箕,發(fā)現(xiàn)之前有個(gè)項(xiàng)目中的提示方式運(yùn)用的是新浪微博中的設(shè)計(jì)爬虱。設(shè)計(jì)雖好瞻离,但是這會(huì)覺得當(dāng)初的這個(gè)實(shí)現(xiàn)方式有些問題。先來看看微博上的效果:

微博上的效果.png

這條黃色的提示欄是不是很熟悉(如果你像我一樣經(jīng)常刷微博)临谱?個(gè)人感覺這種提示方式還是很簡潔很優(yōu)雅的璃俗。

有點(diǎn)跑偏了,趕緊回來悉默。城豁。。

當(dāng)初的實(shí)現(xiàn)方式是自定義一個(gè)View抄课,也就是這個(gè)提示欄唱星,設(shè)置下透明度雳旅,然后一直寫死在xml布局中,位置上處于Titlebar下方间聊,visibility默認(rèn)為gone岭辣。然后每次要顯示的時(shí)候修改下visibility,并且添加一個(gè)動(dòng)畫效果甸饱。肉眼看來確實(shí)跟微博上的沒有絲毫的差別,可是之后的經(jīng)歷就讓當(dāng)初還在實(shí)習(xí)的我痛不欲生了仑濒。

比如:在一次顯示周期中還未結(jié)束叹话,另一個(gè)提示來了,這會(huì)該如何切換墩瞳?多個(gè)提示同時(shí)向你涌來驼壶,該如何顯示?喉酌。热凹。。

這里不去討論這些問題的解決方案泪电,其實(shí)后來也就是添加了一個(gè)消息隊(duì)列般妙,勉強(qiáng)解決了一些問題。

正題

今天我將利用一種簡單的方式實(shí)現(xiàn)這一效果相速,僅僅只是利用Toast碟渺,并且我覺得新浪微博也是用的Toast。直接上代碼:

public static void showOnTop(Context context, String tip) {
    LayoutInflater inflater = LayoutInflater.from(context);
    View layout = inflater.inflate(R.layout.toast_layout, null);
    TextView text = (TextView) layout.findViewById(R.id.tv_content);
    text.setText(tip);
    Toast toast = new Toast(context);
    // 設(shè)置Toast顯示位置為橫向全屏突诬,顯示在頂部苫拍,并且y軸的偏移量為正的45dp,也就是toolbar的高度
    toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.TOP, 0, DensityUtil.dip2px(context, 45)); 
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(layout); // 設(shè)置Toast的自定義布局
    toast.show();
}

實(shí)現(xiàn)的代碼很簡單旺隙,僅僅只是通過自定義Toast布局绒极,然后設(shè)置Toast的顯示位置就Ok了。

再看下布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@color/app_Accent_p"
      android:gravity="center"
      android:orientation="vertical"
      android:padding="10dp">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:src="@drawable/tip_toast_phone"
        android:visibility="gone" />

    <TextView
        android:id="@+id/tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textSize="16sp" />

</LinearLayout>

調(diào)用代碼:

ToastUtil.showOnTop(mApp, "XXXX");
有一點(diǎn)需要注意下:如果在xml中為LinearLayout設(shè)置android:layout_width="match_parent"蔬捷,Toast是不會(huì)在橫軸上全屏顯示的垄提,只有設(shè)置通過Java代碼設(shè)置gravity為Gravity.FILL_HORIZONTAL,才會(huì)全屏抠刺。也就是說Toast是否能夠全屏顯示跟xml代碼無關(guān)塔淤,僅僅跟gravity有關(guān)。

我們實(shí)現(xiàn)的效果如下:

自己實(shí)現(xiàn)的效果.gif

沒有給它設(shè)置透明度速妖,所以效果上有一點(diǎn)點(diǎn)的差異高蜂,其他沒啥差別。由于是Toast罕容,之前遇到的問題也就不存在了备恤,即使存在也可以很簡單得解決稿饰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市露泊,隨后出現(xiàn)的幾起案子喉镰,更是在濱河造成了極大的恐慌,老刑警劉巖惭笑,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侣姆,死亡現(xiàn)場離奇詭異,居然都是意外死亡沉噩,警方通過查閱死者的電腦和手機(jī)捺宗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來川蒙,“玉大人蚜厉,你說我怎么就攤上這事⌒笳#” “怎么了昼牛?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長康聂。 經(jīng)常有香客問我贰健,道長,這世上最難降的妖魔是什么恬汁? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任霎烙,我火速辦了婚禮,結(jié)果婚禮上蕊连,老公的妹妹穿的比我還像新娘悬垃。我一直安慰自己,他們只是感情好甘苍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布尝蠕。 她就那樣靜靜地躺著,像睡著了一般载庭。 火紅的嫁衣襯著肌膚如雪看彼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天囚聚,我揣著相機(jī)與錄音靖榕,去河邊找鬼。 笑死顽铸,一個(gè)胖子當(dāng)著我的面吹牛茁计,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谓松,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼星压,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼践剂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娜膘,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤逊脯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后竣贪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體军洼,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年演怎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歉眷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颤枪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淑际,到底是詐尸還是另有隱情畏纲,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布春缕,位于F島的核電站盗胀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锄贼。R本人自食惡果不足惜票灰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宅荤。 院中可真熱鬧屑迂,春花似錦、人聲如沸冯键。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惫确。三九已至手报,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間改化,已是汗流浹背掩蛤。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陈肛,地道東北人揍鸟。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像句旱,于是被迫代替她去往敵國和親蜈亩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懦窘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件稚配、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • 一日之計(jì)在于晨畅涂,早餐作為一天的第一餐很重要,它關(guān)系到我們一天的精神狀態(tài)道川,所以早餐一定要吃好午衰。 作為一枚標(biāo)準(zhǔn)吃貨,每...
    encho閱讀 408評(píng)論 4 4
  • 如果有人嚴(yán)格要求你冒萄,請(qǐng)不要記恨他臊岸。 小時(shí)候,對(duì)那些父母不管不問的孩子尊流,由衷的羨慕帅戒。因?yàn)樗麄儧]有做不完的作業(yè),看不完...
    隨夢(mèng)逆流閱讀 192評(píng)論 0 0
  • 用途有很多的崖技,可以參考以下做法逻住,但是一定要在有經(jīng)驗(yàn)的人指導(dǎo)下使用,胡亂用之后可能會(huì)發(fā)生某些副作用迎献。 1瞎访、蘆薈治復(fù)發(fā)...
    傲視天下111閱讀 278評(píng)論 0 0
  • 我陪顏翹抓過很多次奸,到后來幾乎都成了一個(gè)固定的游戲吁恍,每隔一段時(shí)間就會(huì)上演一次扒秸,她偶爾會(huì)想一些新的點(diǎn)子,鬧得人仰馬...
    裂帛九閱讀 263評(píng)論 0 0