0

我正在尝试使用片段和ViewPager创建介绍滑块屏幕。我想在onCreateView方法中显示多个布局,但不知道如何去做。如何在onCreateView方法中创建显示多个布局

请帮忙吗?

主要业务

public class MainActivity extends AppCompatActivity { 
    public ViewPager pager; 
    public The_fragment_adapter the_fragment_adapter; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     pager = (ViewPager) findViewById(R.id.pager); 
     the_fragment_adapter = new The_fragment_adapter(getSupportFragmentManager()); 
     pager.setAdapter(the_fragment_adapter); 
    } 
} 

片段类

public class The_fragment extends Fragment { 

    public The_fragment(){ 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View my_view=inflater.inflate(R.layout.theui,container,false); 
     return my_view; 
    } 
} 

适配器查看

public class The_fragment_adapter extends FragmentStatePagerAdapter { 

    public int[] the_layouts = {R.layout.page1,R.layout.page2}; 

    public The_fragment_adapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return new The_fragment(); 
    } 

    @Override 
    public int getCount() { 
     return the_layouts.length; 
    } 
} 
+1

你是什么意思的多个布局? –

+0

现在,在onCreateView方法中,只显示一个布局,即theui,但我想显示2个不同的布局,并使这两个布局的滑块。 – Junaid

回答

0

ViewPager用于分页多个片段,而不是布局。 getItem()方法应该返回你想要的位置片段。

你想要的布局创建第二个片段:

public Fragment The_second_fragment extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View my_view=inflater.inflate(R.layout.page2,container,false); 
     return my_view; 
    } 
} 

然后更改适配器方法:

@Override 
public Fragment getItem(int position) { 
    switch 0: 
     return new The_fragment(); 
    switch 1: 
     return new The_second_fragment(); 
} 

@Override 
public int getCount() { 
    return 2; 
} 

看到优秀的tutorial in the Android Developer's Guide。而且,将来如果您按照Java naming conventions的话,您更可能得到更好的答案,因为其他程序员将更容易理解您的代码。

+0

非常感谢。现在我已经完成了。现在我只是想在使用它们后杀死这些碎片。我正在尝试使用finish();方法,但这不起作用。 – Junaid

+0

您不需要手动杀死碎片。当你的活动被破坏时,他们将被杀死。 –

+0

我试图把另一个活动,并通过第二个片段上的按钮访问它。当我在该活动,并按下后退按钮,它带我回到片段 – Junaid

相关问题