精华内容
下载资源
问答
  • 1.LinearLayout.LayoutParams使用说明 2.在Java代码中利用LinearLayout.LayoutParams构建布局
  • 1.LinearLayout.LayoutParams使用说明 2.在Java代码中利用LinearLayout.LayoutParams构建布局1.继承关系2.主要构造方法1.LinearLayout.LayoutParams(int width, int height) 指定宽度和高度 2.LinearLayout....

    本文主要讲解两个知识点:
    1.LinearLayout.LayoutParams使用说明
    2.在Java代码中利用LinearLayout.LayoutParams构建布局

    1.继承关系

    这里写图片描述

    2.主要构造方法

    1.LinearLayout.LayoutParams(int width, int height)
    指定宽度和高度
    2.LinearLayout.LayoutParams(int width, int height, float weight)
    指定宽度、高度和权重

    3.还是看代码比较直观

    package com.antex.linearLayout.layoutParams;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.LinearLayout;
    
    /**
     * LinearLayout.LayoutParams 使用说明
     * 用JAVA代码构建布局.
     */
    public class LinearLayout_LayoutParamsActivityFragment extends Fragment {
    
        private LinearLayout.LayoutParams params;
    
        public LinearLayout_LayoutParamsActivityFragment() {
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            LinearLayout linearLayout = new LinearLayout(getContext());
            //设置布局方向
            linearLayout.setOrientation(LinearLayout.HORIZONTAL);
            //父LinearLayout LayoutParams
            LinearLayout.LayoutParams parentparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    
            linearLayout.setLayoutParams(parentparams);
    
            //子控件的LayoutParams
            // 宽度为0,高度为WRAP_CONTENT,权重为1,权重也可以不指定
            params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1);
            //设置控件的显示位置,相当于控件的layout_gravity属性
            params.gravity= Gravity.CENTER;
    
            //设置控件margin值
            params.leftMargin=10;
            params.rightMargin=10;
            params.bottomMargin=10;
            params.topMargin=10;
    
            addView(4, linearLayout);
    
            return linearLayout;
        }
    
        /**
         * 添加按钮到容器中
         * @param count        添加按钮总个数
         * @param linearLayout 按钮所在的父容器
         */
        private void addView(int count, LinearLayout linearLayout) {
            for (int i = 1; i <= count; i++) {
                Button button = new Button(getContext());
                button.setText("Button" + i);
                //设置按钮内文本内容显示位置
                //button.setGravity(Gravity.LEFT);
                linearLayout.addView(button, params);
            }
        }
    }
    

    开发工具:Android Studio1.4
    SDK: Android 6.0
    API 23

    代码下载:LayoutParams.zip

    展开全文
  • LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可...
    LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
    
    可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
    但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
    1,一个确定的值;
    2,FILL_PARENT,即填满(和父容器一样大小);

    3,WRAP_CONTENT,即包裹住组件就好。

    Java代码 :
    1.       //创建一个线性布局   
    2.        private LinearLayout mLayout;      
    3.        mLayout = (LinearLayout) findViewById(R.id.layout);      
    4.       //现在我要往mLayout里边添加一个TextView    
    5.      //你可能会想直接在布局文件里边配置不就O 了 那是 但是这里为了说明问题我们用代码实现   
    6.       TextView textView = new TextView(Activity01.this);      
    7.            textView.setText("Text View " );   
    8.            //这里请不要困惑这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如   
    9.     
    10. //在xml里边怎么配置高宽大家都会的。   
    11.   //第一个参数为宽的设置,第二个参数为高的设置。   
    12.            LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(      
    13.                    LinearLayout.LayoutParams.FILL_PARENT,      
    14.                    LinearLayout.LayoutParams.WRAP_CONTENT      
    15.            );      
    16.            //调用addView()方法增加一个TextView到线性布局中   
    17.            mLayout.addView(textView, p);      
    18.           //比较简单的一个例子  


    展开全文
  • LinearLayout.LayoutParams java.lang.Object android.view.ViewGroup.LayoutParams android.view.ViewGroup.MarginLayoutParams android.widget.LinearLayout.LayoutParams



    类 LinearLayout.LayoutParams

    java.lang.Object
      继承者 android.view.ViewGroup.LayoutParams
          继承者 android.view.ViewGroup.MarginLayoutParams
              继承者 android.widget.LinearLayout.LayoutParams
    
    
    
    
    展开全文
  • 错误:代码修改LinearLayout宽度时,报错java.lang.ClassCastException: android.widget.LinearLayoutLayoutParamscannotbecasttoandroid.widget.RelativeLayoutLayoutParams cannot be cast to android.widget....

    错误:代码修改LinearLayout宽度时,报错java.lang.ClassCastException: android.widget.LinearLayoutLayoutParams cannot be cast to android.widget.RelativeLayoutLayoutParams
    布局:LinearLayout父布局是RelativeLayout
    因此,在代码里修改LinearLayout宽度时不需要new,需要获取它自己的LayoutParams

     ViewGroup.LayoutParams params = LinearLayout.getLayoutParams();
                        params.height = ViewGroup.LayoutParams.MATCH_PARENT;
                        LinearLayout.setLayoutParams(params);
    
    展开全文
  • 项目开发中碰到一个异常比较奇怪,因为这个异常一旦出现会然你很头疼,...java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
  • ViewGroup.LayoutParams 和 MeasureSpec

    千次阅读 2018-08-13 21:27:59
     LayoutParams 是ViewGroup的内部静态类 ,ViewGroup的子类(如RelativeLayout,LinearLayout,FrameLayout)都有其对应的 ViewGroup.LayoutParams的子类,如RelativeLayoutParams  LayoutParams 的作用:指定视图...
  • LinearLayout.getLayoutParams().width 和 LinearLayout.getWidth() 有什么区别呢? LinearLayout.getLayoutParams().width 对应xml的 layout_width LinearLayout.getWidth() 这个东西要在 onMeasure之后才...
  • 不管Listview 还是Gridview中的getView必须是按照父类的参数 改正确以后: @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == ... AbsListView.LayoutParams
  • 在适配器中出现这种问题时,首先查看是不是普通定义控件的类型转换出现问题,然后检查返回值是否是定义的那个返回值 if (convertView == null) { convertView = LayoutInflater.from(getActivity()).inflate(R....
  •  有时候需要在在代码中设置LayoutParams,自己为一个FrameLayout设置LayoutParams的时候,遇上如题问题, java.lang.ClassCastException: android.widget.FrameLayout$Layo...
  • 如果你要将一个view添加到另一个布局中,你必须设定该View的布局参数为其父类所使用的布局参数类型。即要在代码中动态改变某组件的高度,其布局参数类型应该是其父类所使用的布局参数类型.
  • 转自http://www.cnblogs.com/ajeyone/p/layoutparams.html?utm_source=tuicool&utm_medium=referral 实例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan
  • RelativeLayout.LayoutParams学习与运用

    千次阅读 2017-02-23 15:11:25
    1、了解LayoutParams其实...LinearLayout对应LinearLayout.LayoutParams,RelativeLayout对应RelativeLayout.LayoutParams。我们在XML中写的大多数属性,在代码中通过LayoutParams同样可以操作界面布局。下面以
  • Android中文文档 LinearLayout.LayoutParams
  • 在做RecyclerView中item动态改变高度的时候。...RelativeLayout,所以我用了RelativeLayout.LayoutParams去设置他的高度。他给我报了如标题的错误,经过查阅文档发现。所有的 Layout在动态改变布局时,都需要使用
  • 最近在做一个自定义的底部导航,布局的最外层容器用的是ConstraintLayout,代码里设置layoutparmas的时候没注意查看,引用的是LinearLayout.LayoutParams。所以在运行的时候就会出现标题显示的错误,解决的方法就是...
  • :java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams 这个错首先说明:类型转化异常 解决方法: 一、详细检查是否将某种...
  • 不同Layout,对应不同Layoutparameter,...因为你的这个LinearLayout是放在一个ListView中(ListView是AbsListView的子类),所以LinearLayout.setLayoutParameters()中应该放AbsListView.LayoutParameter这个类的对象
  • <LinearLayout android:id="@+id/ll_card" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" >
  • ListView 自定义item布局 android widget LinearLayout LayoutParams
  • 在写代码的过程中,尤其是编写一些通用代码对ViewGroup的子View进行调整的时候,必不可少的操作就是重用或者复制一个View的LayoutParams参数。这时一定要注意一些细节,避免参数并没有被复制成功。 因为java类有多态...
  • 1.RelativeLayout 设置边距使用此方法可以但是LinearLayout....RelativeLayout.LayoutParams hint_page_params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
  • layoutParams.token = ((View)findViewById(R.id.linearlayout)).getWindowToken(); //获取当前Activity中的View中的TOken,来依附Activity,因为设置了该值,纳闷写的这些代码不能出现在onCreate();否则会报错。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,008
精华内容 18,803
关键字:

linearlayout.layoutparams