我正尝试在recyclerview
中为每一行水平居中所有项目
我尝试了很多东西:作为父级的RelativeLayout,然后使用layout_centerInParent,使用基本的Android:layout_gravity=“center”,尝试添加一些space元素,使用权重和....在item_row.xml
中,但我没有成功:(
我所拥有的
活动中
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
item_row.xml
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="4dp"
card_view:cardUseCompatPadding="true">
<!-- Recycler View Item Row -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imgThumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:background="@android:color/black" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="item name"
android:id="@+id/txtName"
android:layout_margin="5dp"
android:singleLine="false"
android:lines="2"
android:gravity="center" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/txtCategory"
android:textStyle="italic"
android:textColor="#496fa9"
android:text="subtitle"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:layout_gravity="center" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:padding="8dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
我在谷歌上搜索了很多,找到了这个答案,但实际上我不知道如何为每一行项目创建linearlayout
!
您可以使用SpanSizeLookup为您的网格视图制作具有不同宽度的视图/项。因此,您可以对空视图进行一些巧妙的调整。可能更复杂或更简单,这取决于您的布局实际的可变程度。
参考:https://developer.android.com/reference/android/support/v7/widget/gridlayoutmanager.spansizelookup.html
对于您在绘图上显示的这个特定情况,您可以执行如下操作:
GridLayoutManager lm = new GridLayoutManager(context, 6);
lm.setSpanSizeLookup(new MySizeLookup());
public static class MySizeLookup extends SpanSizeLookup {
public int getSpanSize(int position) {
if(position >= 0 && position <= 2) {
return 2;
} else if (position == 3 || position == 6) {
return 1;
} else {
return 2;
}
}
}
我有一个垂直的,使用。我希望每一列都居中,但列都从左边开始。在下面的图片中,你可以看到我在说什么。我用难看的配色方案来说明柱子和背景。绿色是中每个项目的背景,红色是本身的背景: http://imgur.com/a/J3HtF 我正在设置它: column_item.xml如下: 以下是recyclerview xml:
我需要将每一行的元素居中,这样他们就会像这个模型一样。我一直在搜索是否有任何布局,以这种方式工作没有外观。项在其行中居中。
问题内容: 这可能是一个愚蠢的问题,但是由于居中对齐图像的常规方法不起作用,所以我想问一下。如何在容器div内居中对齐(水平)图像? 这是HTML和CSS。我还包括了缩略图其他元素的CSS。它以降序运行,因此最高的元素是所有内容的容器,最低的元素是所有内容的内部。 好的,我添加了不带PHP的标记,因此应该更容易理解。这两种解决方案似乎都无法在实践中起作用。顶部和底部的文本不能居中,并且图像应在其容
我想要中心的div水平与一个选项滚动使用CSS。我怎样才能做到呢?我看到了一个解决方案使用边距自动和最大宽度,但div将被削减,所以我没有这样做。 null null
问题内容: 我有一个div,希望它水平居中-尽管我给它的是不居中… 问题答案: 您需要设置和。 这指定了从窗口侧面偏移边缘边缘的距离。 类似于“ top”,但指定框的右边距边缘与框的包含块的[right / left]边缘的[left / right]偏移多远。 注意: 元素的宽度必须 小于 窗口的宽度,否则它将占用窗口的整个宽度。 如果可以使用媒体查询来指定 最小 边距,然后过渡到更大的屏幕尺寸
我很难将容器中的一些内容水平居中: https://jsfiddle.net/y56t31q9/6/ 我本以为justify-content会做到这一点,但无济于事。 如有任何帮助,不胜感激,谢谢!