3

我有一个应用程序有3个片段。它的工作很好viewpager。如何在单个视图中实现两个片段?

但我需要在Android Play商店中实现类似的视图。最初他们有“精选”选项卡。当您向左滑动时,我们可以看到“类别”选项卡。

但屏幕的一半仍充满“精选”标签内容。我怎样才能实现这个观点?任何想法?

+0

这将是巨大的,如果任何人都可以给出一个参考的网址,我可以看看 – intrepidkarthi

+0

尝试http://developer.android.com/training/implementing-navigation/ lateral.html#滑动标签 – biegleux

+0

我已经看过这个[链接](http://stackoverflow.com/questions/9693836/fragmentpageradapter-swipe-to-show-listview-1-3-screen-width)。但是,他们只使用一种布局。 – intrepidkarthi

回答

3

下面是实际的答案。在很长时间后发布。

在适配器中添加这个方法:

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

为了在一个视图中显示两个片段,您可以添加一个宽度为&高度的布局将内容包装到一个片段的布局中,然后在onCreateView上使用片段管理器添加其他片段。 代码会是这样 -

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

     </LinearLayout> 
     <LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    > 
    <Button 
    android:id="@+id/tb" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="test"/> 


</LinearLayout> 

而且的onCreate会像 -

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(); 
} 
+0

感谢哥们。我会尽力让你知道。 – intrepidkarthi

0

退房ViewPagerIndicator

如果您想了解它的外观,请先尝试sample

你想要的是标题部分。

+0

我已经看过。但那不是我正在寻找的东西。 – intrepidkarthi

+0

你完全错过了哪些功能?瓷砖被切成两半?因为这是我注意到的唯一区别。 –

+0

是的。这是我需要的唯一功能。 – intrepidkarthi

相关问题