package ren.solid.skinloader.base; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import java.util.ArrayList; import java.util.List; import ren.solid.skinloader.attr.DynamicAttr; import ren.solid.skinloader.listener.IDynamicNewView; /** * Created by _SOLID * Date:2016/4/14 * Time:10:35 */ public class SkinBaseFragment extends Fragment implements IDynamicNewView { private IDynamicNewView mIDynamicNewView; private LayoutInflater mLayoutInflater; @Override public void onAttach(Context context) { super.onAttach(context); try { mIDynamicNewView = (IDynamicNewView) context; } catch (ClassCastException e) { mIDynamicNewView = null; } } @Override public void dynamicAddView(View view, List<DynamicAttr> pDAttrs) { if (mIDynamicNewView == null) { throw new RuntimeException("IDynamicNewView should be implements !"); } else { mIDynamicNewView.dynamicAddView(view, pDAttrs); } } public void dynamicAddSkinView(View view, String attrName, int attrValueResId) { List<DynamicAttr> pDAttrs = new ArrayList<>(); pDAttrs.add(new DynamicAttr(attrName, attrValueResId)); dynamicAddView(view, pDAttrs); } public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { LayoutInflater result = getActivity().getLayoutInflater(); return result; } }