我正在使用RecyclerView Android与左/右消息框创建聊天行。我想将重力设置为RecyclerView的项目。通常情况下,我将itemView投射到LinearLayout,然后为它设置ParamLayout重力。但是如果使用RecyclerView,将它转换为LinearLayout似乎是不对的。它会返回RecyclerView.LayoutParams。因为:以编程方式为RecycerView Android中的项设置重力
RecyclerView的子项的LayoutParams子类。我们鼓励自定义布局 创建它自己的此类 LayoutParams类的子类,以存储有关布局的任何其他必需的每个子视图的元数据 。
而我找不到用RecyclerView.LayoutParams设置引力的方法: 无论如何,有没有人可以在RecyclerView中找到引力项目的方式?请给我建议。
----------- POST SOLUTION ------------------
// 1。的RecyclerView
<LinearLayout
android:id="@+id/id_grandparent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:divider="@android:color/transparent"
android:gravity="left"
android:orientation="vertical">
<LinearLayout
android:id="@+id/id_llparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_customer_feedback_left"
android:gravity="left"
android:orientation="vertical">
</LinearLayout>
// 2名儿童。 OnBindView()
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params = setLayoutParamsForParent(params, item.isPosition());
holder.llParentLayout.setLayoutParams(params); //corresponding to id_llparent ID
// 3。
private LinearLayout.LayoutParams setLayoutParamsForParent(LinearLayout.LayoutParams params, boolean position) {
params.gravity = position ? Gravity.RIGHT : Gravity.LEFT;
return params;
}
问题解决。 – 2015-04-03 04:44:51