1

我需要根据用户的行为显示和隐藏 ImageView。我将 ImageView 设置为不可见,onCreate()并尝试在用户选择 OptionsMenu 中的项目时使其再次可见。奇怪的是它根本没有出现,只会在 Activity 恢复后出现。

这是 XML 代码:

<ImageView
    android:id="@+id/rectimage"
    android:layout_width="20dp"
    android:layout_height="20dp"
    android:src="@drawable/rect" />

我在哪里隐藏图像视图

 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>
4

1 回答 1

0

这是因为您正在绘制一个透明的矩形:

<solid android:color="@android:color/transparent"/>

你看到边界被画了吗?

另外,您是否尝试过设置断点onOptionsItemSelected以确保它被调用?

于 2013-04-11T16:34:24.610 回答