【发布时间】:2015-01-06 10:03:57
【问题描述】:
我的代码这是一个适配器,我想在列表视图中将我的布局动态对齐到左侧和右侧...并且空指针异常出现在 relativeParams.leftMargin=80;
Java:
public View getView(int position, View view, ViewGroup parent)
{
ViewHolder viewHolder;
ChatItem chatItem = getItem(position);
viewAligned = view;
if(view == null)
{
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.cell_messages_layout, null);
viewHolder = new ViewHolder();
viewHolder.message = (TextView) view.findViewById(R.id.fromZoneMessage1);
viewHolder.rl = (RelativeLayout) view.findViewById(R.id.messageLayout);
view.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.message.setText(chatItem.getSenderMessage());
if (chatItem.getAllignment() == 0)
{
// viewHolder.message.setGravity(Gravity.LEFT);
viewHolder.message.setBackgroundResource(R.drawable.sent_message);
// view.setBackgroundResource(R.drawable.sent_message);
}
else {
// viewHolder.rl.setBackgroundResource(R.drawable.recieved_message);
// view.holder.rl.set
// viewHolder.message.setGravity(Gravity.RIGHT);
viewHolder.message.setBackgroundResource(R.drawable.recieved_message);
RelativeLayout.LayoutParams relativeParams = (RelativeLayout.LayoutParams) viewHolder.rl.getLayoutParams();
relativeParams.leftMargin=80;
viewHolder.rl.setLayoutParams(relativeParams);
// LayoutParams lp = (LayoutParams) view.getLayoutParams();
}
return view;
}
我的布局是....
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/messageLayout"
>
<TextView
android:id="@+id/fromZoneMessage1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
android:padding="5dp"
android:text="Hey Jack"
/>
</RelativeLayout>
请有人帮我把左边距放在我的视图中......
【问题讨论】:
-
把
view.setTag(viewHolder);放在return view;之前 -
在提供的布局中,我无法找到
R.id.messageLayout的 ID 为RelativeLayout。你确定为 ListView 行视图使用正确的布局吗? -
view.setTag(viewHolder) 不起作用...但是谢谢
-
是的,我确定它对于listView的行的相对布局......还有其他方法吗
-
您的
RelativeLayout在XML 中不包含id属性。