Я использую RecyclerView Android для создания линии чата с левым/правым полем сообщений. Я хочу установить гравитацию на элемент RecyclerView. Обычно я бросал itemView в LinearLayout, а затем устанавливал для него силу тяжести ParamLayout. Но если RecyclerView, кажется, не правильно бросать в LinearLayout. Он вернет RecyclerView.LayoutParams. Из-за:Установите гравитацию программно для элемента в RecycerView Android
Подкласс подкласса LayoutParams для детей RecyclerView. Пользовательский макет менеджерам рекомендуется создавать свой собственный подкласс этого класса LayoutParams для хранения любого дополнительного требуемого для каждого ребенка представления метаданных о макете.
И я не могу найти способ установить гравитацию с помощью RecyclerView.LayoutParams: | В любом случае, может ли кто-нибудь найти способ гравитации в RecyclerView? Pls предлагает мне.
----------- ОТЧЕТ О РЕШЕНИИ ------------------
// 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;
}
Проблема решена. –