1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

recyclerViewにステータスバー分のパディングを入れる

Posted at

###最初に
このページはステータスバーを透過させた際にステータスバーのメニューと
リストの内容が被ってしまうことがあるため備忘録として記させていただきます
##実装方法

MainFragment.kt
 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        presenter.onViewCreated()
        recyclerView.requestApplyInsets()
        recyclerView.setOnApplyWindowInsetsListener{v, insets ->
            v.setPadding(0,insets.systemWindowInsetTop,0,0)
            return@setOnApplyWindowInsetsListener insets
        }
    }

setOnApplyInstesListener内のinsets.systemWindowInsetTopでステータスバー分の高さを取得してパディングに設定します
ステータスバー分下げるだけの場合はsetOnApplyWindowInsetsListener内のみの
処理で十分ですが、ここで一つ注意していただきたいのがタブなどでフラグメントを
制御している場合、遷移後にsetOnApplyWindowInsetsListener内に処理が入ってくれずパディングが設定されないことがあるので
**requestApplyInsets()**を書いてあげることにより一度リセットをしてくれるため
再度中身の処理に入ってくれます
#最後に
前回ステータスバーの透過方法を書かせていただいたのですが仕事で作っている
アプリでrecyclerViewに実装した際にパディングが実装されない不具合に直面した
ため書かせていただきました

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?