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

相關問題