我有一个recylcler视图,但似乎没有实现setGravity方法。
我的列表是水平对齐的,但我需要它居中。我该怎么做?
fragment_my_zone_item_controlled.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark_grey">
<FrameLayout
android:id="@+id/fragment_my_zone_item_controlled_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/fragment_my_zone_item_controlled_tabs"
android:layout_marginBottom="12dp"
android:layout_marginTop="12dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/fragment_my_zone_item_controlled_tabs"
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="@color/action_bar_color"
android:scrollbars="none" />
</RelativeLayout>
这就是它的外观,我需要它集中在中心
谢谢你们
答案 0 :(得分:6)
我知道这是非常晚的答案,可能是其他人得到了这方面的帮助所以请尝试添加这样的
<android.support.v7.widget.RecyclerView
android:id="@+id/fragment_my_zone_item_controlled_tabs"
android:layout_width="wrap_content"
android:layout_height="44dp"
android:layout_centerHorizontal="true"
android:background="#dddddd"
android:scrollbars="none" />
添加android:layout_centerHorizontal="true"
方法
答案 1 :(得分:1)
如果其他答案对您没有帮助,我在RecyclerView
遇到了一个问题,即内容未被有效包裹,导致布局被强制转移到一个角落或另一个角落。
我的答案是创建一个扩展LinearLayoutManager
的自定义类。您可以尝试这个,然后以编程方式设置重力。
以下是我question的链接,以及我获得idea for my answer的帖子。
答案 2 :(得分:1)
(如果有人正在寻找像我一样的答案),我尝试了两种解决方案并且不适合我,这就是我所做的。我计算了屏幕宽度&amp;我的视图宽度,然后在我的RecyclerView.ViewHolder
我向左边添加了边距供我查看(这是我的情况下的比例)
DisplayMetrics metrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels;
long ratio = screenWidth * 90 / 100;
int margin = (int) ((screenWidth - ratio) / 2);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams((int) ratio, ViewGroup.LayoutParams.WRAP_CONTENT);
lp1.gravity = Gravity.CENTER_VERTICAL;
lp1.setMargins(margin, 0, 0, 0);
itemLayoutView.setLayoutParams(lp1);
这是一个混乱的解决方案,但我找不到另一个
答案 3 :(得分:0)
theLazyFinder解决方案可以工作但是如果你想为RV提供不同的背景颜色,那么将它添加到FrameLayout并将其重力设置为居中。
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorWhite">
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</FrameLayout>