我有一個應用程序有3個片段。它的工作很好viewpager。如何在單個視圖中實現兩個片段?
但我需要在Android Play商店中實現類似的視圖。最初他們有「精選」選項卡。當您向左滑動時,我們可以看到「類別」選項卡。
但屏幕的一半仍充滿「精選」標籤內容。我怎樣才能實現這個觀點?任何想法?
我有一個應用程序有3個片段。它的工作很好viewpager。如何在單個視圖中實現兩個片段?
但我需要在Android Play商店中實現類似的視圖。最初他們有「精選」選項卡。當您向左滑動時,我們可以看到「類別」選項卡。
但屏幕的一半仍充滿「精選」標籤內容。我怎樣才能實現這個觀點?任何想法?
下面是實際的答案。在很長時間後發佈。
在適配器中添加這個方法:
@Override
public float getPageWidth(int position) {
if (position == 0) {
return(0.5f);
} else {
return (1.0f);
}
}
爲了在一個視圖中顯示兩個片段,您可以添加一個寬度爲&高度的佈局將內容包裝到一個片段的佈局中,然後在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();
}
感謝哥們。我會盡力讓你知道。 – intrepidkarthi
我已經看過。但那不是我正在尋找的東西。 – intrepidkarthi
你完全錯過了哪些功能?瓷磚被切成兩半?因爲這是我注意到的唯一區別。 –
是的。這是我需要的唯一功能。 – intrepidkarthi
這將是巨大的,如果任何人都可以給出一個參考的網址,我可以看看 – intrepidkarthi
嘗試http://developer.android.com/training/implementing-navigation/ lateral.html#滑動標籤 – biegleux
我已經看過這個[鏈接](http://stackoverflow.com/questions/9693836/fragmentpageradapter-swipe-to-show-listview-1-3-screen-width)。但是,他們只使用一種佈局。 – intrepidkarthi