如何让 SeekBar 占用 TextView 和 ImageButton 之间的可用宽度?
How can I make a SeekBar take up the width available between a TextView and an ImageButton?
我希望 TextView 和 ImageButton 根据它们的大小占用 space,并让 SeekBar 占用剩余的 space。这是我当前的代码:
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="100">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/seekbar_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/white" />
<SeekBar
android:id="@+id/seek_bar"
style="@style/Widget.AppCompat.SeekBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp" />
<ImageButton
android:id="@+id/ccBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_captions_off"
app:tint="@color/white" />
</androidx.appcompat.widget.LinearLayoutCompat>
使用此代码,SeekBar 没有宽度并且 ccBtn 出现在屏幕中央。我该如何解决这个问题?
您可以使用 weight
属性,
将 SeekBar weight
设置为 1 并将 layout_width
设置为 0dp
应该可以做到。
另外,在旁注中,在命名变量时尽量保持一致,不要 do_this
一个变量 andThis
另一个
根据 Ricardo 的回答,代码将是
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/seekbar_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/white" />
<SeekBar
android:id="@+id/seek_bar"
style="@style/Widget.AppCompat.SeekBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:layout_marginBottom="8dp" />
<ImageButton
android:id="@+id/ccBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_captions_off"
app:tint="@color/white" />
</androidx.appcompat.widget.LinearLayoutCompat>
图片预览:https://i.stack.imgur.com/LGrEo.png
图中我稍微居中了一点,可以通过重心实现,没有底边距
我希望 TextView 和 ImageButton 根据它们的大小占用 space,并让 SeekBar 占用剩余的 space。这是我当前的代码:
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="100">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/seekbar_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/white" />
<SeekBar
android:id="@+id/seek_bar"
style="@style/Widget.AppCompat.SeekBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp" />
<ImageButton
android:id="@+id/ccBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_captions_off"
app:tint="@color/white" />
</androidx.appcompat.widget.LinearLayoutCompat>
使用此代码,SeekBar 没有宽度并且 ccBtn 出现在屏幕中央。我该如何解决这个问题?
您可以使用 weight
属性,
将 SeekBar weight
设置为 1 并将 layout_width
设置为 0dp
应该可以做到。
另外,在旁注中,在命名变量时尽量保持一致,不要 do_this
一个变量 andThis
另一个
根据 Ricardo 的回答,代码将是
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/seekbar_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/white" />
<SeekBar
android:id="@+id/seek_bar"
style="@style/Widget.AppCompat.SeekBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:layout_marginBottom="8dp" />
<ImageButton
android:id="@+id/ccBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_captions_off"
app:tint="@color/white" />
</androidx.appcompat.widget.LinearLayoutCompat>
图片预览:https://i.stack.imgur.com/LGrEo.png
图中我稍微居中了一点,可以通过重心实现,没有底边距