2013-07-21 2 views
0

나는 약 5 페이지의 슬라이딩 ViewPager를 가지고 있습니다. 각 레이아웃은 다음과 같이 팽창 :안드로이드 겹침 레이아웃

public static class SectionFragment extends Fragment { 
    ... 
    @Override 
    public View onCreateView(LayoutInflater inflater, ...) { 
     ... 
     rootView = inflater.inflate(R.layout.gridpage1,container,false); 
     ... 
    } 

가 지금은 조건이 true인지 확인하고 싶은 예, 먼저 그 위에 다음 다른 레이아웃을 gridpage1 레이아웃을 팽창하려는 경우.

어떻게하면됩니까? 내가 필요로하는 것은 두 개의 뷰를 하나씩 팽창시키는 데 도움이되는 것입니다.

답변

0

뷰를 압축하면 기본적으로 XML 파일에서 파일을 만들고 반환하는 것입니다.

구체적으로 onCreateView 기능에서 조각 콘텐츠보기를 반환하면됩니다. FrameLayout frameLayout = new FrameLayout(context);

  • 를 추가

    뭔가 같은 FrameLayout 프로그래밍 자신을 볼

    1. 만들기 :이 단일 뷰해야하므로 조건이 참이고 경우에 당신은이 뷰는 다음을 수행합니다 처음으로보기를 에 부친 후

      어느 쪽이든 frameLayout.addView(inflater.inflate(R.layout.gridpage1,frameLayout,false)); 또는 inflater.inflate(R.layout.gridpage1,frameLayout,true);이면 충분합니다. true은보기를 컨테이너에 추가하기 때문에 알려줍니다.

      어떻게 각 뷰에 대한 참조를 저장 :

    2. onCreateView

    추가에서

  • 돌아 가기 FrameLayout 팽창 후 FrameLayout에 두번째보기를 추가

    옵션 1 :

    View v1 = inflater.inflate(R.layout.gridpage1,frameLayout,false); 
    this.v1Reference = v1; 
    frameLayout.addView(v1); 
    

    옵션 2 :

    inflater.inflate(R.layout.gridpage1,frameLayout,true); 
    this.v1Reference = frameLayout.findViewById(...); 
    
  • +0

    이 옵션을 사용하면보기를 숨길 수 있습니까? 나는 주어진 시간에 단지 1 개의 쇼를 원한다. 스위치를 토글하는 것처럼 ... –

    +0

    물론, 각각에 대한 참조를 유지하거나 ID를 사용하여 찾아서 view.setVisibility (..)를 호출 할 수 있습니다. – talkol

    +0

    알겠습니다. 힘들어하고 도움이 필요하면 게시 할 예정입니다. 감사합니다 –

    0

    메인 레이아웃에 <include /> 태그를 사용하고 setVisibility(View.GONE/VISIBLE)으로 원하는보기를 숨기거나 표시 할 수 있습니다. 예를 들어 :

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
    > 
    
        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/hello_world" /> 
    
        <include android:id="@+id/gridpage1_layout" layout="@layout/gridpage1"/> 
        <include android:id="@+id/gridpage2_layout" layout="@layout/gridpage2"/> 
    ... 
    
    </RelativeLayout> 
    

    그리고 당신의 조각에

    , 당신은 단지 루트 레이아웃을 팽창하고 ID로 다른 뷰를 찾을 수 있습니다.

    +0

    'ViewStub'이 경우에 아마 더 좋다. –