私たちのアプリケーションでは、次のような不確定な進行状況バーが必要です。
これは、次のように、ProgressBar に負のマージンを設定することで実現できます。
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:marginTop="-7dp"
android:visibility="@{loading ? View.VISIBLE : View.GONE}" />
ただし、 ConstraintLayout は負のマージンをサポートしていないため、次のようになります。
OK、負のマージンはハックでした。別のハックに置き換えましょう。次のように、そのメソッドCustomProgressBar
を拡張ProgressBar
およびオーバーライドするカスタム ビュー を紹介しましょう。onDraw
@Override
protected void onDraw(Canvas canvas) {
int marginTop = dpToPx(7);
canvas.translate(0, -marginTop);
super.onDraw(canvas);
}
しかし、これはすべて悪いコードのようなにおいがします。もっと良い解決策があるはずです!あなたは何をお勧めします?