2016-03-23 29 views
2

Özel bir görünüm eklemek istiyorum (düğme ve metin görünümü içeren bir düzen içeren) her bir etkinliğe özel görünüm adıma ihtiyacım var NetworkErrorView ve başka bir sınıfım var. ağ durumunun değiştiğini gözlemlememe yardım et!Aktivitedeki görünümlerin en üstünde özel bir görünüm ekleme Programatik olarak

Ben ağ istatistiklerini ben Görünür olarak geride görünürlüğü değiştirmek istediğiniz değişiklik olduğunda (Değiştiğinde Bu

private NetworkErrorView networkErrorView=new NetworkErrorView(this).build(); 

Ve benzeri benim NetworkErrorView bulid her aktivitede diğer bakış üstünde benim özel görünümü göstermek istiyorum herkes bana yardımcı olabilir

@Override 
public void onChange(boolean isConnected) { 
    networkErrorView.networkErorrDialog(isConnected); 
} 

benim onChange() (yöntem çalışması doğru ama görünürlüğünü değiştirmek benim özel görünümü göremiyorum ??

0123: benim ağ durumu değişti) olarak adlandırılır

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); 
} 
} 

cevap

0

Ben görünümü ekleniyor düşünüyorum, ama sen 1th pozisyonda görünümü ekleyerek, çünkü öyle gösterilmiyor yani bu gibi bir deney deneyiniz

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, 0); //Change this form 1 to 0 
    return this; 
} 
+0

0,1, getChiledCount() ve getChiledCount() - 1'i denedim ama çalışmaz –

+0

iç inChange yöntemini günlüğe kaydetme sonucu ((ViewGroup) findViewById (android.R.id.content)). GetChildCount() GetChildCount() – Sushant

+0

sonucu 2 –