ビューの高さを取得するのが難しいです。現在、アプリのコールドスタート時に、getMeasuredHeight()
は、0
を返します。コールドスタート時にカスタムビューの高さを取得するのが難しい
今、私はこれを回避する方法を知っています。ビューがまだレイアウトされていないために発生しています。残念ながら、addOnGlobalLayoutListener
のようなものを使用するだけでは十分ではありません。 のオフセットを設定するには、このビューの高さ(ツールバー+ TabLayout
またはユーザーの設定によってはツールバーのみ)がsetProgressCircleOffset()
を使用する必要があります。アプリのコールドスタート時に、SwipeRefreshLayout
は「リフレッシュ」と表示されます。データが読み込まれたり変更されたりすると、いつでも「爽やかに」表示されます。高さがわからない場合は、SwipeRefreshLayout
は「きれいになっている」と表示されません。私は、コールドスタートの開始時に必要なときに計算を遅らせることはできません。言うまでもなく2つの可能な高さのうちの1つかもしれない。
私はデバイスのDPIを取得することができ、一般的には(試行錯誤によって)ビューの高さ(それは代替値です)を見積もることができます画面サイズに基づいてオフセットを適応させる「数式」などを作成しますか?私はdp
をpx
に変換する必要があることを知っていますが、それを超えて、これについてどうやって行くのか分かりません。
たとえば、このビューの高さは自分のNexus 6で334px(513dpiに設定)です。私の株式Pixel C(Pixel Cでは334pxのオフセットがあまりにも多すぎます)では明らかに少なくなっています。
パーセンテージベースの値は機能しますが、なぜこれをやりたいのですか? – AMAN77
@ AMAN77なぜ私はしないでしょうか? – Nxt3
@ AMAN77スクリーンの高さ全体のうち、一定の割合を行うだけですか?それは悪い選択肢のようには見えません。 – Nxt3