爲什麼下面的代碼失敗?添加按鈕後,爲什麼我的背景會消失?
我在我的main.xml中有一個藍色的relativeLayout。點擊我添加一個綠色按鈕。
在我的摩托羅拉Xoom上運行時,單擊屏幕,我看到顯示綠色按鈕,但背景從藍色變爲黑色。如果我再次點擊我的藍色背景顯示。再次點擊,我看到黑色...
我錯過了什麼?
感謝您的任何幫助。
package com.android.mikeviewtester;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
public class ViewTesterActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set the relative layout as our view
setContentView(R.layout.main);
RelativeLayout currentView = (RelativeLayout) findViewById(R.id.MyRelativeLayout);
// set a listener
currentView.setOnTouchListener((android.view.View.OnTouchListener) mOnTouchListener);
}
private android.view.View.OnTouchListener mOnTouchListener = new android.view.View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (v != null)
v.onTouchEvent(event);
if (event.getAction() == MotionEvent.ACTION_UP) {
android.widget.RelativeLayout vw = (android.widget.RelativeLayout) findViewById(R.id.MyRelativeLayout);
// create and add a new cyan button
Button btn = new Button(ViewTesterActivity.this);
btn.setBackgroundColor(Color.GREEN);
vw.addView(btn, 100, 100);
vw.invalidate();
btn.invalidate();
}
return true;
}
};
}
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/MyRelativeLayout"
android:background="#0000FF">
</RelativeLayout>
可能有一些跟你的新的按鈕設置viewgroup.layoutparams,我不知道,將不得不擺弄它;)添加aswell後嘗試無效? – Warpzit
我沒有運氣就玩過layoutparams設置。嘗試使用addView(btn,100,100)來避免layoutparams。我試過invalidate()和invalidateRect(..)。當我在視圖上調用getDrawingRect()時,我得到整個畫布矩形,使得看起來沒問題。 – SkolVikingsGuy