单击按钮时更改位置?

时间:2013-12-04 06:10:40

标签: java android xml

我在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到左边)

我是如何实现这一目标的?

2 个答案:

答案 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);