我在android xml中有两个对象,我的对象位于水平方向,左边是imageview,右边是textview,我的代码看起来像
<LinearLayout
android:id="@+id/rowFile"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/img_dilvChat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
/>
<TextView
android:id="@+id/txtFileName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dip"
android:gravity="left"
android:text="Nama File : test.zip"
android:textSize="10dip" />
</LinearLayout>
我想在按钮触发时切换2个对象(imageview到右边,textview到左边)
我是如何实现这一目标的?
答案 0 :(得分:2)
以下代码应该这样做。移除ImageView
并再次将其添加到LinearLayout
。这样做会妨碍OnClick
听众。
LinearLayout row = (LinearLayout) findViewById(R.id.rowFile);
ImageView image = (ImageView) findViewById(R.id.img_dilvChat);
row.removeView(image);
row.addView(image);
row.invalidate();
答案 1 :(得分:0)
在Button的onClickListener中写下这些
(findViewById(R.id.imageView)).getLocationOnScreen(posXY);
int imgx = posXY[0];
int imgy = posXY[1];
(findViewById(R.id.textView)).getLocationOnScreen(posXY);
int txtx = posXY[0];
int txty = posXY[1];
(findViewById(R.id.imageView)).setX(txtx);
(findViewById(R.id.imageView)).setY(txty);
(findViewById(R.id.textView)).setX(imgx);
(findViewById(R.id.textView)).setY(imgy);