2015-01-13 3 views
0

은 내가 버튼을 showConfigStubView라는 방법을 누를 때 약간의 전망과 부톤 섬을 포함하는 RelativeLayout의 rl_root가 호출이 있으며 rl_root가 사라 레이아웃을 만드는 것입니다 및 viewStub이 뷰 그룹 rl_root를 교체해야합니다.ViewStub가 표시되지 않습니까?

실행 ime에서 showConfigStubView 메서드를 호출하면 rl_root 뷰 그룹이 사라지고 viewStub이 표시되지 않습니다. showConfigStubView INT

rl_root 사라 있도록 View.gone 호출하고 새 Viewstub 프로그래밍 viewStub = new ViewStub(getActivity());을 만든 다음 그 파라미터와 realtiveLayout를 생성하고 새로운 RelativeLayout의 행 ViewStub를 첨가 한 후 그 각각의 레이아웃과 viewStub 비정상적이다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/rl_root" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="center_vertical|center_horizontal"> 

<RadioGroup 
    android:id="@+id/rg_mqtt_config_choice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:checkedButton="@+id/rb_used_configs"> 
    <RadioButton 
     android:id="@+id/rb_used_configs" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/rb_used_configs"/> 
    <RadioButton 
     android:id="@+id/rb_new_configs" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/rb_new_configs" /> 
</RadioGroup> 

<Button 
    android:id="@+id/btn_connect" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/rg_mqtt_config_choice" 
    android:text="@string/btn_connect"/> 

ViewStub

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center_horizontal"> 
<TextView 
    android:id="@+id/tvSubView_ip" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentStart="true" 
    android:paddingTop="10dp" 
    android:text="@string/tvSubView_ip"/> 
<EditText 
    android:id="@+id/etSubView_ip" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toEndOf="@+id/tvSubView_ip" 
    android:layout_marginStart="20dp" 
    android:hint="@string/etSubView_ip_hint"/> 

<TextView 
    android:id="@+id/tvSubView_port" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/tvSubView_ip" 
    android:paddingTop="20dp" 
    android:text="@string/tvSubView_port"/> 
<EditText 
    android:id="@+id/etSubView_port" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toEndOf="@+id/tvSubView_port" 
    android:layout_below="@+id/etSubView_ip" 
    android:layout_marginStart="7dp" 
    android:hint="@string/etSubView_port_hint"/> 

<TextView 
    android:id="@+id/tvSubView_clientID" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/tvSubView_port" 
    android:paddingTop="20dp" 
    android:text="@string/tvSubView_clientID"/> 
<EditText 
    android:id="@+id/etSubView_clientID" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toEndOf="@+id/tvSubView_clientID" 
    android:layout_below="@+id/etSubView_port" 
    android:layout_marginStart="7dp" 
    android:hint="@string/etSubView_clientID_hint"/> 

<TextView 
    android:id="@+id/tvSubView_KATimer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/tvSubView_clientID" 
    android:paddingTop="20dp" 
    android:text="@string/tvSubView_KATimer"/> 
<EditText 
    android:id="@+id/etSubView_KATimer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toEndOf="@+id/tvSubView_KATimer" 
    android:layout_below="@+id/etSubView_clientID" 
    android:layout_marginStart="7dp" 
    android:hint="@string/etSubView_KATimer_hint"/> 

<CheckBox 
    android:id="@+id/cbSubView_CleanSession" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvSubView_KATimer" 
    android:layout_marginTop="20dp" 
    android:gravity="center_vertical" 
    android:checked="true" 
    android:text="@string/cbSubView_CleanSession"/> 
:

아래의 코드를 살펴 제발이 방법은 showConfigStubView 나는 ViewStub

메인 레이아웃를 호출하는 방법을 설명합니다

방법 showConfigStubView : viewStub 항상 null 이외의 뷰 그룹 또는 레이아웃에 속해야한다는

protected void showConfigStubView() { 
    // TODO Auto-generated method stub 
    this.rl_Root.setVisibility(View.GONE); 
    viewStub = new ViewStub(getActivity()); 

    RelativeLayout relativeLayout = new RelativeLayout(getActivity()); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams 
      ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.CENTER_HORIZONTAL); 
    params.topMargin = 10; 
    viewStub.setLayoutParams(params); 
    //rl_Root.addView(viewStub); 

    viewStub.setLayoutResource(R.layout.mqttconfig_subtree); 
    relativeLayout.addView(viewStub); 
    View inflated = viewStub.inflate(); 
} 

답변

0

참고. RelativeLayout 가시성을 Gone으로 설정하면 viewStub가 속해야하는 viewGroup이 없으므로 고려해야합니다. 다음을 시도해보십시오.

protected void showConfigStubView() { 
    // TODO Auto-generated method stub 
    this.rg_ConfigChoice.setVisibility(View.GONE); 
    this.btn_connect.setVisibility(View.GONE); 
    this.viewStub = new ViewStub(getActivity()); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams 
      ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.CENTER_HORIZONTAL); 
    this.viewStub.setLayoutParams(params); 
    this.rl_Root.addView(viewStub); 
    this.viewStub.setLayoutResource(R.layout.mqttconfig_subtree); 
    View inflated = viewStub.inflate(); 
}