2013-01-01 42 views
2

我有一個ViewPager它擁有多個鹼基片段,每個鹼基片段有四個更多的嵌套片段和每個嵌套片段是5 imageViewstextView的組合。 (這是我打算做的)嵌套片段內的自定義適配器

我已經創建了一個示例應用程序,但我無法正確實施。我在嵌套片段或基本片段中看不到任何視圖。

這裏的示例應用程序

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
    > 

<fragment android:name="com.example.nestedfragments.BaseFragment" 
      android:id="@+id/left_fragment" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent"/> 
</LinearLayout> 

代碼MainActivity.java

package com.example.nestedfragments; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

public class MainActivity extends FragmentActivity { 
/** 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 
} 

base_fragment.xml

<?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"> 

<Button 
     android:id="@+id/button1" 
     android:text="Launch Nested Fragment" 
     android:gravity="center" 
     android:layout_alignParentBottom="true" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:paddingBottom="10dp"/> 

</RelativeLayout> 

BaseFragment.java

public class BaseFragment extends Fragment { 

Button doNestingButton; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // set the view 
    View root = inflater.inflate(R.layout.base_fragment, container, false); 



    doNestingButton = (Button) root.findViewById(R.id.button1); 

    doNestingButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Fragment videoFragment = new NestedFragment(); 
      // we get the 'childFragmentManager' for our transaction 
      FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
      // make the back button return to the main screen 
      // and supply the tag 'left' to the backstack 
      transaction.addToBackStack("left"); 
      // add our new nested fragment 
      transaction.add(getId(), videoFragment, "left"); 
      // commit the transaction 
      transaction.commit(); 
     } 
    }); 
    return root; 

} 


} 

nested_fragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 


<ImageView 
     android:layout_width="154dp" 
     android:layout_height="154dp" 
     android:id="@+id/imageView" android:layout_gravity="left|center_vertical" 
     android:src="@drawable/ic_splash"/> 
</LinearLayout> 

NestedFragment.java

public class NestedFragment extends Fragment { 

public NestedFragment() { 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View root = inflater.inflate(R.layout.nested_fragment, container, false); 
    ImageView doNestingButton = (ImageView) root.findViewById(R.id.imageView); 

    return root; 
} 

這是一個示例應用程序,請指導我。

+0

你說你有一個包含'BaseFragments'一個'ViewPager'但你的活動的內容是一個簡單的'帶有'BaseFragment'的LinearLayout'。你可以解釋嗎? – Luksprog

+0

是的,正如我所說的這是示例應用程序只是1個BaseFragment和1個嵌套片段,其中只有1個視圖。如果解決了這個問題,我會轉向我原來的任務。但至於現在請幫助我糾正此示例應用程序,它遵循此層次結構 MainActivity - > BaseFragment - > NestedFragment - > ImageView –

回答

0

從你上面的代碼,你有沒有在base_fragment.xml .So add the frame layout for nested fragment in base_fragment.xml使用的片段容器佈局等的FrameLayout