底部隨輸入法高度變化而變化的控件SoftLinearLayout

我們經(jīng)常玩QQ、微信,大家是否認(rèn)真看過它們的聊天界面,它們的輸入框既可以隨軟鍵盤高度變化屹蚊,又可以隨底部控件的高度變化,而且底部控件還可以隨軟鍵盤高度的調(diào)整而自動調(diào)整(只不過設(shè)置了最小捆交、最大值)淑翼,看上去是不是覺得很酷呢?今天品追,我就在這介紹一個比它還好用的控件--SoftLinearLayout玄括。

首先,我們來看一下效果演示圖:

SoftLinearLayout.gif

接下來肉瓦,我們講解一下控件功能及其使用:

1.功能

底部控件隨輸入法高度變化而變化遭京,比QQ聊天界面更完美。

2.Android Studio使用方法

dependencies{
      compile 'com.wkp:SoftLinearLayout:1.0.1'
      //Android Studio3.0+可用以下方式
      //implementation 'com.wkp:SoftLinearLayout:1.0.1'
}

注意:以Github地址為準(zhǔn)泞莉。

3.使用詳解

  • 屬性講解
   <!--可變高度的極限小高度-->
  <attr name="wkp_minHeight" format="integer"/>
  <!--可變高度的極限大高度-->
  <attr name="wkp_maxHeight" format="integer"/>
  <!--顯示軟鍵盤時的動畫時長-->
  <attr name="wkp_showSoftDuration" format="integer"/>
  <!--開關(guān)底部布局時的動畫時長-->
  <attr name="wkp_toggleDuration" format="integer"/>
  • 布局示例
<?xml version="1.0" encoding="utf-8"?>
<com.wkp.softlinearlayout.view.SoftLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/sll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/ll_top"
        android:orientation="vertical"
        android:background="@android:color/holo_blue_bright"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <RelativeLayout
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="0dp">

            <ListView
                android:id="@+id/lv"
                android:stackFromBottom="true"
                android:transcriptMode="normal"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            </ListView>

        </RelativeLayout>

        <EditText
            android:hint="你好"
            android:id="@+id/et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <Button
            android:text="確定"
            android:onClick="sure"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll_bottom"
        android:orientation="vertical"
        android:gravity="center"
        android:background="@android:color/holo_green_dark"
        android:layout_width="match_parent"
        android:layout_height="100dp">

        <TextView
            android:gravity="center"
            android:text="底部"
            android:textColor="@android:color/white"
            android:textSize="16sp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </LinearLayout>

</com.wkp.softlinearlayout.view.SoftLinearLayout>
  • 代碼示例
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public class MainActivity extends AppCompatActivity {

    private SoftLinearLayout mSll;
    private String[] mStrings = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("\\B");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView lv = findViewById(R.id.lv);
        lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings));
        mSll = findViewById(R.id.sll);
        //設(shè)置開關(guān)改變監(jiān)聽
        mSll.setOnToggleChangedListener(new SoftLinearLayout.OnToggleChangedListener() {
            @Override
            public void onToggleChanged(boolean isToggle) {
                Log.d("MainActivity", "isToggle:" + isToggle);
            }
        });
    }

    //點擊開/關(guān)
    public void sure(View view) {
        mSll.toggle();
    }
}

結(jié)語

控件支持直接代碼創(chuàng)建哪雕,還有更多API請觀看SoftLinearLayout.java內(nèi)的注釋說明。

歡迎大家使用Github地址鲫趁,感覺好用請給個Star鼓勵一下斯嚎,謝謝!

大家如果有更好的意見或建議以及好的靈感挨厚,請郵箱作者堡僻,謝謝!

QQ郵箱:
1535514884@qq.com

163郵箱:
15889686524@163.com

Gmail郵箱:
wkp15889686524@gmail.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疫剃,一起剝皮案震驚了整個濱河市钉疫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贡茅,居然都是意外死亡城菊,警方通過查閱死者的電腦和手機备燃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凌唬,“玉大人赚爵,你說我怎么就攤上這事》ㄉ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵唁奢,是天一觀的道長霎挟。 經(jīng)常有香客問我,道長麻掸,這世上最難降的妖魔是什么酥夭? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮脊奋,結(jié)果婚禮上熬北,老公的妹妹穿的比我還像新娘。我一直安慰自己诚隙,他們只是感情好讶隐,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著久又,像睡著了一般巫延。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上地消,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天炉峰,我揣著相機與錄音,去河邊找鬼脉执。 笑死疼阔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的半夷。 我是一名探鬼主播婆廊,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玻熙!你這毒婦竟也來了否彩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤嗦随,失蹤者是張志新(化名)和其女友劉穎列荔,沒想到半個月后敬尺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贴浙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年砂吞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崎溃。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜻直,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袁串,到底是詐尸還是另有隱情概而,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布囱修,位于F島的核電站赎瑰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏破镰。R本人自食惡果不足惜餐曼,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鲜漩。 院中可真熱鬧源譬,春花似錦、人聲如沸孕似。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喉祭。三九已至霸饲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間臂拓,已是汗流浹背厚脉。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胶惰,地道東北人傻工。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像孵滞,于是被迫代替她去往敵國和親中捆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

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

  • 原文鏈接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影閱讀 32,912評論 6 472
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,790評論 25 707
  • 呵呵坊饶,這里有多少朋友已經(jīng)將近奔三泄伪,或者已經(jīng)在三字開頭的路上呢? 我也就是即將奔三的人兒了匿级,所以特意來感慨一下蟋滴。染厅。 ...
    淺藍(lán)色的地閱讀 113評論 0 1
  • 我曾有個朋友。 無所事事的時候我與一陽以因速度慢而著稱的動物的速度在街上行走著津函,看美女肖粮,看屁股;看跑車尔苦,也看屁股涩馆。...
    ZLanZ閱讀 231評論 0 1
  • 這堂筆記里的重點是:一怎么擺脫月光,二保險的規(guī)劃允坚。其中保險我會加上最近了解到的新內(nèi)容魂那。本節(jié)課的目的,為月光族...
    元氣辣椒閱讀 2,200評論 0 2