Android Open Source - android-mvc-framework M Linear Layout






From Project

Back to project page android-mvc-framework.

License

The source code is released under:

Apache License

If you think the Android project android-mvc-framework listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android_mvc.framework.ui.view;
/*from   ww w  .  j  ava 2 s. c om*/
import java.util.ArrayList;
import java.util.HashMap;

import com.android_mvc.framework.annotations.SuppressDebugLog;
import com.android_mvc.framework.common.FWUtil;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

/**
 * LinearLayout???????????
 * @author id:language_and_engineering
 *
 */
@SuppressDebugLog
public class MLinearLayout extends LinearLayout implements IFWView
{

    // ???????????????????????????????
    public ArrayList<View> includingViews;

    // ?????????????????View?????
    private int numInflatedViews = 0;
        // NOTE: inflate????????????add?????????inflate?????????????????????????????View????????????????????????????????
        //   Caused by: java.lang.IllegalStateException:
        //   The specified child already has a parent. You must call removeView() on the child's parent first.
        // ?????????????View???????????????????????????????????????????????????????????


    public MLinearLayout(Context context)
    {
        super(context);
        includingViews = new ArrayList<View>();
    }


    public MLinearLayout(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        includingViews = new ArrayList<View>();
    }
        // NOTE: ????????????????????????????????????????????????
        //   android.view.InflateException: Binary XML file line #?: Error inflating class ?
        // @see http://q.hatena.ne.jp/1322903451


    /**
     * ???????????????????????????????????????
     * @param v ????????View
     */
    public MLinearLayout add(View...v)
    {
        for( int i = 0; i < v.length; i ++ )
        {
            FWUtil.d("???????View???" + v.toString() );
            this.includingViews.add( v[i] );
        }
        FWUtil.d("add??????????" + v.length + "????View??????");

        return this;
    }


    /**
     * ??????????????????????????
     * ??????????????????????????????????????
     * ????????????????????????????View????????????
     */
    public void inflateInside()
    {
        // ?????????View????????????
        for(int i = numInflatedViews; i < includingViews.size(); i ++ )
        {
            View v = includingViews.get(i);

            //FWUtil.d("??????????View????????parentLayout = " + parentLayout.toString() + ", v = " + v.toString());
            registerOneView(v);
        }

        // ????????View????
        numInflatedViews = includingViews.size();
    }


    /**
     * 1????????????????????????????
     */
    private void registerOneView(View v)
    {
        FWUtil.d("???????????????");

        // ??????View?????????????
        int[] arr = getWidthHeightOfView(v);
        int intWidth = arr[0];
        int intHeight = arr[1];

        // FW????????????????????????????????????????????????
        if( v instanceof MLinearLayout )
        {
            FWUtil.d("FW?????????????");
            MLinearLayout innerLayout = (MLinearLayout)v;
            innerLayout.inflateInside();
            FWUtil.d("FW????????????????????????????");
        }

        // ??????????????
        this.addView(v, new LinearLayout.LayoutParams(intWidth, intHeight));
            // http://www.javadrive.jp/android/linearlayout/index5.html

        FWUtil.d("???????????????");
    }


    /**
     * ?????View?????????????
     */
    private int[] getWidthHeightOfView(View v) {

        // ?????????????
        int intWidth = ViewGroup.LayoutParams.WRAP_CONTENT;
        int intHeight = ViewGroup.LayoutParams.WRAP_CONTENT;

        // FW?????View?????????????????
        if( v instanceof IFWView )
        {
            FWUtil.d("FW?????View??????????????");

            // ???????????????
            IFWView fwv = (IFWView)v;

            // ??????
            if( fwv.getViewParam("layout_width") != null )
            {
                intWidth = (Integer)fwv.getViewParam("layout_width");
            }
            if( fwv.getViewParam("layout_height") != null )
            {
                intHeight = (Integer)fwv.getViewParam("layout_height");
            }
        }
        FWUtil.d("View????????????????????");

        // ??????????
        return new int[]{intWidth, intHeight};
    }



    // ?????????
    HashMap<String, Object> view_params = new HashMap<String, Object>();

    @Override
    public Object getViewParam(String key) {
        return view_params.get(key);
    }

    @Override
    public void setViewParam(String key, Object val) {
        view_params.put(key, val);
    }


    // ??????????


    public MLinearLayout orientationHorizontal() {
        setOrientation(LinearLayout.HORIZONTAL);
        return this;
    }


    public MLinearLayout orientationVertical() {
        setOrientation(LinearLayout.VERTICAL);
        return this;
    }


    public MLinearLayout widthFillParent() {
        setViewParam("layout_width", ViewGroup.LayoutParams.FILL_PARENT );
        return this;
    }


    public MLinearLayout heightWrapContent() {
        setViewParam("layout_width", ViewGroup.LayoutParams.WRAP_CONTENT );
        return this;
    }


    public MLinearLayout paddingPx( int px ) {
        setPadding(px, px, px, px);
        return this;
    }


}




Java Source Code List

com.android_mvc.framework.activities.CommonActivityUtil.java
com.android_mvc.framework.activities.IBaseActivity.java
com.android_mvc.framework.activities.base.BaseMapActivity.java
com.android_mvc.framework.activities.base.BaseNormalActivity.java
com.android_mvc.framework.activities.base.BaseTabHostActivity.java
com.android_mvc.framework.activities.installation.InstallAppFWBaseActivity.java
com.android_mvc.framework.annotations.SuppressDebugLog.java
com.android_mvc.framework.common.AbstractAppSettings.java
com.android_mvc.framework.common.BaseUtil.java
com.android_mvc.framework.common.FWUtil.java
com.android_mvc.framework.controller.BaseController.java
com.android_mvc.framework.controller.ControlFlowDetail.java
com.android_mvc.framework.controller.action.ActionResult.java
com.android_mvc.framework.controller.action.BLExecutor.java
com.android_mvc.framework.controller.action.BaseAction.java
com.android_mvc.framework.controller.routing.IntentPortable.java
com.android_mvc.framework.controller.routing.Router.java
com.android_mvc.framework.controller.routing.RoutingTable.java
com.android_mvc.framework.controller.routing.TabContentMapping.java
com.android_mvc.framework.controller.validation.ActivityParams.java
com.android_mvc.framework.controller.validation.BaseValidationsUtil.java
com.android_mvc.framework.controller.validation.NumberComparator.java
com.android_mvc.framework.controller.validation.ValidationExecutor.java
com.android_mvc.framework.controller.validation.ValidationResult.java
com.android_mvc.framework.db.DBHelper.java
com.android_mvc.framework.db.dao.BaseDAO.java
com.android_mvc.framework.db.dao.BaseDBDAO.java
com.android_mvc.framework.db.dao.BasePrefDAO.java
com.android_mvc.framework.db.dao.FWPrefDAO.java
com.android_mvc.framework.db.dao.Finder.java
com.android_mvc.framework.db.dao.IFWDAO.java
com.android_mvc.framework.db.entity.BaseLogicalEntity.java
com.android_mvc.framework.db.schema.AbstractSchemaDefinition.java
com.android_mvc.framework.db.schema.RDBColumn.java
com.android_mvc.framework.db.schema.RDBSchema.java
com.android_mvc.framework.db.schema.RDBTable.java
com.android_mvc.framework.db.transaction.todo.TxnListener.java
com.android_mvc.framework.db.transaction.todo.TxnScope.java
com.android_mvc.framework.net.HttpPostRequest.java
com.android_mvc.framework.net.HttpPostResponse.java
com.android_mvc.framework.net.old.HttpPostHandler.java
com.android_mvc.framework.net.old.HttpPostTask.java
com.android_mvc.framework.task.AsyncTasksRunner.java
com.android_mvc.framework.task.RunnerFollower.java
com.android_mvc.framework.task.SequentialAsyncTask.java
com.android_mvc.framework.ui.UIBuilder.java
com.android_mvc.framework.ui.UIUtil.java
com.android_mvc.framework.ui.menu.OptionMenuBuilder.java
com.android_mvc.framework.ui.menu.OptionMenuDescription.java
com.android_mvc.framework.ui.tab.TabDescription.java
com.android_mvc.framework.ui.tab.TabHostBuilder.java
com.android_mvc.framework.ui.view.IFWView.java
com.android_mvc.framework.ui.view.MButton.java
com.android_mvc.framework.ui.view.MCheckBox.java
com.android_mvc.framework.ui.view.MEditText.java
com.android_mvc.framework.ui.view.MLinearLayout.java
com.android_mvc.framework.ui.view.MTextView.java
com.android_mvc.sample_project.activities.func_db.DBEditActivity.java
com.android_mvc.sample_project.activities.func_db.DBListActivity.java
com.android_mvc.sample_project.activities.func_db.SampleTabHostActivity.java
com.android_mvc.sample_project.activities.func_net.HttpNetActivity.java
com.android_mvc.sample_project.activities.installation.InstallAppActivity.java
com.android_mvc.sample_project.activities.installation.InstallCompletedActivity.java
com.android_mvc.sample_project.activities.installation.lib.InstallAppUserBaseActivity.java
com.android_mvc.sample_project.activities.main.TopActivity.java
com.android_mvc.sample_project.common.AppSettings.java
com.android_mvc.sample_project.common.Util.java
com.android_mvc.sample_project.controller.FuncDBController.java
com.android_mvc.sample_project.controller.FuncDBValidation.java
com.android_mvc.sample_project.controller.FuncNetController.java
com.android_mvc.sample_project.controller.FuncNetValidation.java
com.android_mvc.sample_project.controller.MainController.java
com.android_mvc.sample_project.controller.util.ValidationsUtil.java
com.android_mvc.sample_project.db.dao.FriendDAO.java
com.android_mvc.sample_project.db.dao.PrefDAO.java
com.android_mvc.sample_project.db.dao.todo.HogeDAO.java
com.android_mvc.sample_project.db.entity.Friend.java
com.android_mvc.sample_project.db.entity.lib.LogicalEntity.java
com.android_mvc.sample_project.db.schema.SchemaDefinition.java
com.android_mvc.sample_project.domain.DBDeleteAction.java
com.android_mvc.sample_project.domain.DBEditAction.java
com.android_mvc.sample_project.domain.DBUpdateAction.java
com.android_mvc.sample_project.domain.HttpNetAction.java