嗨我有以下xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/wrapper" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_margin="10dip" android:weightSum="1" android:background="#000" android:orientation="horizontal"> <TextView android:id="@+id/textMessage" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight = ".9" android:layout_gravity="center" android:layout_margin="5dip" android:paddingLeft="10dip" android:background="#FFF" android:text="TEXT NOT SET" android:textColor="@android:color/white" /> <ImageView android:id="@+id/thumbPhoto" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight = ".1" android:src="@drawable/ic_contact_default"/> </LinearLayout> </LinearLayout>
我想要做的是让我的ImageView的位置以编程方式更改到textMessage的左侧.
这可以通过将我的ImageView放在TextView上面来通过xml完成.但是我想以编程方式获得相同的结果.
假设我的适配器中有这个
public View getView(int position,View convertView,ViewGroup parent) { View row = convertView; if (row == null) { LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = inflater.inflate(R.layout.chat_item,parent,false); } wrapper = (LinearLayout) row.findViewById(R.id.wrapper); // How should i change the position of my ImageView ?? wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT); return row; }
解决方法
试试这样….
ImageView imageView= (ImageView)yourLinearLayout.findViewById(R.id.thumbPhoto); yourLinearLayout.removeViewAt(1); yourLinearLayout.addView(0,imageView);
通过使用此行
// How should i change the position of my ImageView ?? wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT);