Android 如何在单个视图中实现两个片段?

Android 如何在单个视图中实现两个片段?,android,android-layout,android-fragments,android-viewpager,android-view,Android,Android Layout,Android Fragments,Android Viewpager,Android View,我有一个有3个片段的应用程序。它在寻呼机上工作得很好 但我需要实现类似于Android Play store的视图。最初,他们有“特色”标签。当您向左滑动时,我们可以看到“类别”选项卡 但屏幕的一半仍然充满了“特色”选项卡内容。我如何实现这一观点?有什么想法吗?为了在一个视图中显示两个片段,您可以添加一个布局,其宽度和高度将在一个片段的布局中包裹内容,然后在onCreateView上使用片段管理器添加另一个片段。 代码将如下所示-- 退房 如果你想看看它的样子,试试第一个 你想要的是标题部分 以

我有一个有3个片段的应用程序。它在寻呼机上工作得很好

但我需要实现类似于Android Play store的视图。最初,他们有“特色”标签。当您向左滑动时,我们可以看到“类别”选项卡


但屏幕的一半仍然充满了“特色”选项卡内容。我如何实现这一观点?有什么想法吗?

为了在一个视图中显示两个片段,您可以添加一个布局,其宽度和高度将在一个片段的布局中包裹内容,然后在onCreateView上使用片段管理器添加另一个片段。 代码将如下所示--

退房

如果你想看看它的样子,试试第一个


你想要的是标题部分

以下是实际答案。过了很长时间才发帖

在适配器中添加此方法:

@Override
public float getPageWidth(int position) {
if (position == 0) {
    return(0.5f);
} else {
    return (1.0f);       
}
}

这将是伟大的,如果任何人都可以给一个参考网址,我可以看看尝试我已经研究了这一点。但是他们只使用了一种布局。谢谢你,伙计。我会尽力让你知道的。我已经调查过了。但事实上这并不是我想要的。你到底缺少什么功能?瓷砖被切成两半了吗?因为这是我注意到的唯一不同。是的。这是我唯一需要的功能。
View view ;

boolean isVisible = false;

FragmentManager fm;
FragmentTransaction ft;
Fragment menuFragment;
LinearLayout llList;

@Override
public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.main, container, false);
    llList = (LinearLayout) view.findViewById(R.id.ll1);
    menuFragment = new frg1();
    fm = getFragmentManager();


    Button tb = (Button) view.findViewById(R.id.tb);
    tb.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if(!isVisible) {

                isVisible = true;
                showList();
            }
            else {

                isVisible = false;
                hideList();
            }

        }
    });

    return view;
}


private void changeDisplay() {

    Display display = getActivity().getWindowManager().getDefaultDisplay();
    int width = (int) (display.getWidth() * 0.8 );
    int height = (int) (display.getHeight() * 0.8);

    if(isVisible) 
    {
        llList.setLayoutParams(new LinearLayout.LayoutParams(width, LayoutParams.FILL_PARENT));
        //lllList.setLayoutParams(new LinearLayout.LayoutParams(p))
    }
    else {
        llList.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
        //llList.scrollTo(0, 0);
    }
}

private void showList() {

    changeDisplay();

    ft = fm.beginTransaction();
    ft.add(R.id.ll1, menuFragment);
    ft.commit();
}

private void hideList() {

    changeDisplay();

    ft = fm.beginTransaction();
    ft.remove(menuFragment);
    ft.commit();
}
@Override
public float getPageWidth(int position) {
if (position == 0) {
    return(0.5f);
} else {
    return (1.0f);       
}
}