Android 在线性布局中添加填充顶部
这是我的线性布局: 它离顶端太近了。我正试图在顶部增加一些空间。我试过使用android:paddingTop,但没有用。如何在线性布局的顶部添加空间 XML:Android 在线性布局中添加填充顶部,android,android-layout,Android,Android Layout,这是我的线性布局: 它离顶端太近了。我正试图在顶部增加一些空间。我试过使用android:paddingTop,但没有用。如何在线性布局的顶部添加空间 XML: 根据您在图像中显示的内容,您可能已经指定了android:padding为所有四条边添加填充。如果是这样的话,添加android:paddingTop将一事无成;系统将忽略该属性,而选择通用的android:padding 例如,如果您当前有android:padding=“16dp”,则必须将其删除并替换为以下内容: android:
根据您在图像中显示的内容,您可能已经指定了
android:padding
为所有四条边添加填充。如果是这样的话,添加android:paddingTop将一事无成;系统将忽略该属性,而选择通用的android:padding
例如,如果您当前有android:padding=“16dp”
,则必须将其删除并替换为以下内容:
android:paddingTop="32dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
<dimen name="extra_padding">32dp</dimen>
<dimen name="normal_padding">16dp</dimen>
val paddingTop = when (position) {
0 -> resources.getDimensionPixelSize(R.dimen.extra_padding)
else -> resources.getDimensionPixelSize(R.dimen.normal_padding)
}
view.setPadding(view.paddingLeft, paddingTop, view.paddingRight, view.paddingBottom)
如果您使用的是
ListView
,并且只想在第一个项目上方添加一些间距,那么情况就不同了。您没有将paddingTop
添加到项目视图中,而是有一些选择
在列表视图上填充
将这两个属性添加到列表视图
或回收视图
标记中:
android:paddingTop="32dp"
android:clipToPadding="false"
这是目前为止最简单的解决方案,但它会影响滚动条的绘制方式,这可能是您不喜欢的
将标题视图添加到列表视图
为标题视图创建布局文件。如果您只想在顶部留出一些额外的空间,我建议使用
标记:
<Space
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="32dp"/>
默认情况下,分隔符仍将显示在此标题和第一个列表项之间。如果您不想这样做,可以禁用它:
listView.setHeaderDividersEnabled(false)
getView()中的动态填充
在适配器的getView()
方法中,可以根据项目的位置以编程方式设置填充。首先,像这样定义两个dimen
资源:
android:paddingTop="32dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
<dimen name="extra_padding">32dp</dimen>
<dimen name="normal_padding">16dp</dimen>
val paddingTop = when (position) {
0 -> resources.getDimensionPixelSize(R.dimen.extra_padding)
else -> resources.getDimensionPixelSize(R.dimen.normal_padding)
}
view.setPadding(view.paddingLeft, paddingTop, view.paddingRight, view.paddingBottom)
因此,这起作用,增加了一个填充顶部。但它为每个单独的项目添加了填充顶部。我如何只将填充顶部添加到版面中,而不添加它包含的项目?您能否在问题中添加版面的xml源代码和它现在的外观图片?我在这里使用ListView
或RecyclerView
?看起来你在重复同样的线性布局
+five文本视图
“小部件”。@Efaz我已经更新了答案