2016-02-08 86 views
0

嗨,大家好,我在執行flipboard應用程序頁面摺疊動畫時遇到問題。我爲此使用了openaphid/android-flip庫。我能夠成功地爲使用gridview顯示項目列表的屏幕實現動畫,這個庫顯示只有適配器的屏幕的摺疊動畫,顯示單個適配器項目的摺疊動畫。現在我想爲單個屏幕顯示此動畫片段或活動,這是可能的,因爲此動畫在「Havells mCatalogue應用程序」中實現。如果有人已經使用這個庫動畫,並知道如何實現一個屏幕顯示幾個項目在GridView中的動畫,請讓我知道如何處理這件事。我從應用程序中添加照片以供參考此動畫。 而這裏的鏈接,動畫庫執行openAphid可滾動網格屏幕的翻轉動畫(flipboard)

https://github.com/openaphid/android-flipimage 1[![][1]] 2

回答

0

嗯,我能夠通過充氣顯示了用一個適配器類的getView方法中適配器一個GridView擴展底座適配器一個片段來實現所需的功能。但由於翻轉無法翻轉這個具有網格視圖的片段的下一個項目,所以我需要採用不同的技術。即我必須創建硬編碼屏幕和定義適配器的硬編碼計數,我用它來設置它來翻轉視圖控制器和內部獲取此適配器的視圖方法取決於位置我加載不同的XML並相應實例化視圖。我知道這是非常糟糕的技術和詳盡的,但現在這是我找到的唯一解決方案。

這裏是我的代碼

FragmentLoaderAdapterFragment.java

public class FragmentLoaderAdapterFragment extends Fragment { 

private FlipViewController flipView; 

public FragmentLoaderAdapterFragment() { 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    flipView = new FlipViewController(inflater.getContext()); 
    flipView.setAdapter(new SingleFragmentDisplayAdapter()); 

    return flipView; 

} 

@Override 
public void onResume() { 
    super.onResume(); 
    flipView.onResume(); 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    flipView.onPause(); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    flipView = null; 
} 

private class SingleFragmentDisplayAdapter extends BaseAdapter { 


    public SingleFragmentDisplayAdapter() { 
    } 

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

    @Override 
    public Object getItem(int i) { 
     return i; 
    } 

    @Override 
    public long getItemId(int i) { 
     return i; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     if (i==0){ 
      view = View.inflate(getActivity(),R.layout.fragment_consumer_products,null); 
      LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout); 
      cableLinearLayout.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show(); 
       } 
      }); 
      return view; 
     } if (i==1){ 
      view = View.inflate(getActivity(),R.layout.fragment_consumer_products2,null); 
      LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout); 
      cableLinearLayout.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show(); 
       } 
      }); 
      return view; 
     } else { 
      return null; 
     } 
    } 

} 
} 

enter image description here