0
下面的代碼示例:Android的 - 問題的RelativeLayout兒童GONE知名度
public class CustomImageVIew extends LinearLayout {
private Image mImage = null;
private ImageView mImageView;
private ProgressBar mProgressBar;
private RelativeLayout mLayout;
public static enum State {NOT_LOADED, IMAGE_LOADING, IMAGE_LOADED};
private State state;
public CustomImageVIew(Context context) {
this(context, null);
}
public CustomImageVIew(Context context, AttributeSet attrs) {
super(context, attrs);
View v = View.inflate(getContext(), R.layout.gallery_image_view, null);
mLayout = (RelativeLayout) v;
addView(mLayout);
mImageView = (ImageView) mLayout.findViewById(R.id.gallery_image_view_image);
mProgressBar = (ProgressBar) mLayout.findViewById(R.id.gallery_image_view_progress_bar);
setState(State.NOT_LOADED);
}
private void setState(State newState) {
if (state != newState) {
state = newState;
switch (state) {
case NOT_LOADED:
mImageView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.GONE);
break;
case IMAGE_LOADING:
mImageView.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.VISIBLE);
break;
case IMAGE_LOADED:
mImageView.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.GONE);
break;
}
}
}
public State getState() {
return state;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/gallery_image_view_image"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:id="@+id/gallery_image_view_progress_bar"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:clickable="false"/>
</RelativeLayout>
當我打電話的setState(State.IMAGE_LOADED)的onCreate方法沒有任何反應之外。 它可能是什麼問題?
我不知道你是怎麼做的,因爲setState是一個私有方法 – damson