【发布时间】:2016-07-11 02:24:13
【问题描述】:
我想为我需要的每个 Activity 添加一个自定义视图(包含按钮和文本视图的布局)我的自定义视图名称是 NetworkErrorView,我还有另一个类可以帮助我观察网络状态的变化!
我想在像这样构建 NetworkErrorView 的每个活动中将我的自定义视图显示在其他视图之上
private NetworkErrorView networkErrorView=new NetworkErrorView(this).build();
当网络统计信息发生变化时,我想将可见性从 Gone 更改为 Visible(当我的网络状态更改时调用 onChange):
@Override
public void onChange(boolean isConnected) {
networkErrorView.networkErorrDialog(isConnected);
}
我的onChange()(方法正常工作,但是当我更改可见性时我看不到我的自定义视图!谁能帮助我??
NetworkErrorView:
public class NetworkErrorView {
private ViewGroup mRootView;
private Activity mActivity;
private LinearLayoutManager mLayoutManager;
private View view;
private Animation translationIn;
private Button btnNetwork;
private LinearLayout networkContainer;
private boolean networkStatus;
public NetworkErrorView(@NonNull Activity activity) {
this.mRootView = (ViewGroup) activity.findViewById(android.R.id.content);
this.mActivity = activity;
this.mLayoutManager = new LinearLayoutManager(mActivity);
}
public NetworkErrorView build(){
view= Assist.inflater.inflate(R.layout.dialog_network_error,mRootView,false);
//View.inflate(mActivity, R.layout.dialog_network_error, mRootView);
btnNetwork=(Button) view.findViewById(R.id.btn_error_network);
btnNetwork.setOnClickListener(onClickListener);
networkContainer=(LinearLayout) view.findViewById(R.id.layout_error_networkcontainer);
translationIn= AnimationUtils.loadAnimation(mActivity,R.anim.anim_wifi_container_in);
mRootView.addView(view, 1);
return this;
}
public void networkErorrDialog(boolean isConnected){
networkStatus=isConnected;
if(isConnected){
view.setVisibility(View.GONE);
}else {
view.setVisibility(View.VISIBLE);
view.bringToFront();
translationIn= AnimationUtils.loadAnimation(mActivity, R.anim.anim_wifi_container_in);
networkContainer.setAnimation(translationIn);
}
}
View.OnClickListener onClickListener=new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!networkStatus){
mActivity.startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
}
}
};
}
mActivity:
public class mActivity extends AppCompatActivity implements NetworkObserver {
private NetworkErrorView networkErrorView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
FontManager.instance().setTypeface(getWindow().getDecorView());
addView();
NetworkManager.init(this);
//...
}
private void addView(){
//...
networkErrorView=new NetworkErrorView(this).build();
}
@Override
public void onChange(boolean isConnected) {
networkErrorView.networkErorrDialog(isConnected);
}
}
【问题讨论】:
标签: android android-activity view