0
我想擴展Fragment
類,但我希望能夠用我的類HoloEverywhere並用默認的片段......延長未知的超類裝飾圖案,並覆蓋功能
所以我試圖用一個裝飾...
public abstract class RFragment<F extends Fragment, I extends LayoutInflater> extends Fragment implements IKey
{
private final Class<F> mFragmentClass;
private final Class<I> mInflatorClass;
public RFragment(Class<F> fragmentClass, Class<I> inflatorClass)
{
this.mFragmentClass = fragmentClass;
this.mInflatorClass = inflatorClass;
}
}
我現在也希望覆蓋onCreateView
,但我不能這樣做。我嘗試是以下幾點:
@Override
public View onCreateView(I inflater, ViewGroup container, Bundle savedInstanceState)
{
if (view == null)
{
view = doOnCreateView(inflater, container, savedInstanceState);
loadingIndicator = doGetLoadingIndicatorView(view);
}
return view;
}
protected abstract View doOnCreateView(I inflater, ViewGroup container, Bundle savedInstanceState);
protected abstract View doGetLoadingIndicatorView(View view);
但這是不允許的,因爲我不能覆蓋的功能,如果該參數不匹配
是它在某種程度上可能(I = LayoutInflator!)解決這個問題?我想避免複製我的類,只是將默認片段和默認LayoutInflator中的導入更改爲HoloEveryhwere中的導入(它只擴展默認類)...
HoloEverywhere是一個庫(不是我自己),它可以用來在老的android系統上獲得Holo的視覺風格以及...他們擴展了佈局充氣機以及...所以'onCreateView'將被調用在第一種情況下使用'org.holoeverywhere.LayoutInflator',在第二種情況下使用'android.view.LayoutInflater' ... – prom85
不知道=)謝謝。你有沒有嘗試我的答案的第一部分? –
實際上,這將無法正常工作...全息庫使'onCreateView'最終和內部設定LayoutInflator使用(自己或默認),因爲在新的Android系統上使用默認的默認設置,只有舊的一個是使用... – prom85