如何更改水平滚动视图中图像按钮的宽度?
Posted
技术标签:
【中文标题】如何更改水平滚动视图中图像按钮的宽度?【英文标题】:How can I change the width of an image button in a horizontal scroll view? 【发布时间】:2021-12-24 05:36:47 【问题描述】:我正在尝试创建一个看起来像 GitHub 的贡献页面的页面(就像每个方块代表一天,方块的透明度代表提交次数)。我希望页面看起来像这样:
所以我做了一个水平滚动视图,因为我希望正方形的部分可以水平滚动。我试图将正方形添加到 HSV 中。代码如下:
<HorizontalScrollView
android:id="@+id/scrollView"
android:layout_
android:layout_
android:layout_marginTop="10dp"
android:layout_marginRight="60dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/time">
<ImageButton
android:id="@+id/imageButton1"
android:layout_ <!-- the problem -->
android:layout_
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/square" />
</HorizontalScrollView>
问题是,我无法设置图片按钮的layout_width,无论我改成什么,设计总是这样:
如你所见,高度是正确的,但宽度固定在一个奇怪的地方。无论如何我可以改变它吗?
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您应该使用 HorizontalScrollView 内部的布局,而不是直接添加图像按钮。例如 LinearLayout 或 GridLayout
重点是scroll view只能有一个child,因为scroll view扩展了FrameLayout
引用自documentation:
用户可以滚动的视图层次结构的布局容器,允许它大于物理显示。 HorizontalScrollView 是 FrameLayout,这意味着您应该在其中放置一个包含要滚动的全部内容的子项;这个孩子本身可能是一个具有复杂对象层次结构的布局管理器。经常使用的子元素是水平方向的 LinearLayout,呈现用户可以滚动浏览的***项目的水平数组。
【讨论】:
以上是关于如何更改水平滚动视图中图像按钮的宽度?的主要内容,如果未能解决你的问题,请参考以下文章