我需要根据用户的行为显示和隐藏ImageView。我将ImageView设置为onCreate()
中不可见,当用户选择OptionsMenu中的项目时,我会尝试再次显示它。奇怪的是它根本没有显示,只会在活动恢复后显示。
以下是XML代码:
<ImageView
android:id="@+id/rectimage"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/rect" />
隐藏imageview的地方
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
image = (ImageView) findViewById(R.id.rectimage);
image.setVisibility(View.INVISIBLE);
}
我试图让它再次可见
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_visible:
image.setVisibility(View.VISIBLE);
return true;
}
return false;
}
这是onStart和onResume,没有做任何事情。
@Override
protected void onStart() {
super.onStart();
Log.w(TAG, "-- ON Start --");
}
@Override
public void onResume() {
super.onResume();
Log.w(TAG, "-- ON Resume --");
}
这是我在XML中的可绘制资源
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<corners android:radius="20px"/>
<stroke android:width="2dip" android:color="#000000"/>
</shape>
答案 0 :(得分:0)
这是因为你正在绘制一个透明的矩形:
<solid android:color="@android:color/transparent"/>
您是否看到正在绘制边框?
另外,您是否尝试在onOptionsItemSelected
中设置一个断点以确保它被调用?