精华内容
下载资源
问答
  • android:layout_width="@{@dimen/text_width}" android:layout_height="@{@dimen/text_height}" android:background="#e6e6e6" android:gravity="center
            <TextView
                android:layout_width="@{@dimen/text_width}"
                android:layout_height="@{@dimen/text_height}"
                android:background="#e6e6e6"
                android:gravity="center"
                android:text="my girl!" />


    dimens.xml文件的内容:

        <dimen name="text_width">200dp</dimen>
        <dimen name="text_height">80dp</dimen>

    运行之后,出现问题:


    碰到这类错误,setter for attribute,基本就是属性没有对应的setter,需要我们使用@BindingAdapter等来弄一个方法,进行绑定。

    或者方法的参数写错了。


    这里由于View里面是不存在layout_widht和layout_height的属性的,我们知道这个只有其实是通过父控件的布局参数设置的。

    所以需要设置@BindingAdapter。

        @BindingAdapter("android:layout_width")
        public static void setLayoutWidth(View view, float width) {
            ViewGroup.LayoutParams params = view.getLayoutParams();
            params.height = (int) width;
            view.setLayoutParams(params);
        }
    
        @BindingAdapter("android:layout_height")
        public static void setLayoutHeight(View view, float height) {
            ViewGroup.LayoutParams params = view.getLayoutParams();
            params.height = (int) height;
            view.setLayoutParams(params);
        }

    运行发生Binary XML file line#49: You must supply a layout_width attribute的错误:


    其实从图中可以看到在DataBindingUtil.setContentView(this, R.layout.activity_main);初始化执行的时候,需要给对应TextView的属性layout_width和layout_height设置值。

    而这里的setLayoutWidth()和setLayoutHeight()方法在初始化的时候并没有执行,所以TextView的这两个属性是没有值的。故报了上述的错误,解决方法也很简单,

    给一个默认值就可以了。

            <TextView
                android:layout_width="@{@dimen/text_width, default=@dimen/text_width}"
                android:layout_height="@{@dimen/text_height, default=@dimen/text_height}"
                android:background="#e6e6e6"
                android:gravity="center"
                android:text="my girl!" />

    @BindingAdapter("android:layout_width")
    public static void setLayoutWidth(View view, float width) {
        ViewGroup.LayoutParams params = view.getLayoutParams();
        params.height = (int) width;
        view.setLayoutParams(params);
    }
    
    @BindingAdapter("android:layout_height")
    public static void setLayoutHeight(View view, float height) {
        ViewGroup.LayoutParams params = view.getLayoutParams();
        params.height = (int) height;
        view.setLayoutParams(params);
    }

    这样子就可以了。



    参考文章:

    http://stackoverflow.com/questions/35295120/android-data-binding-layout-width-and-layout-height


    http://stackoverflow.com/questions/34769981/android-databinding-layout-width-you-must-supply-a-layout-width-attribut

    展开全文
  • layout_width和layout_weight的区别

    千次阅读 2017-07-21 09:51:33
    layout_width详解,layout_weight详解,layout_weight和layout_width的区别
    layout_width :  
    用于设置组件的基本宽度,可选值为fill_parent,match_parent,wrap_parent
                                   fill_parent和match_parent的用法相同,表示该组件的宽度与父容器的宽度相同
                                  wrap_parent表示完全显示内容,其大小由所输入内容的多少来决定


    layout_weight : 这个是有点复杂

    android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度      (android:layout_width) 加上剩余空间的占比!
     
    是吧,有些难以理解,网上有人举了个例子
           
           设屏幕宽度为L,在两个view的宽度都为match_parent的情况下,原有宽度为L,两个的View的宽度都为L,那么剩余宽度为L-(L+L) = -L, 左边的View占比三分之一,所以总宽度是L+(-L)*1/3 = (2/3)L.事实上默认的View的weight这个值为0,一旦设置了这个值,那么所在view在绘制的时候执行onMeasure两次的原因就在这。  

          还是不好理解?                
          所以说啊,google给出了官方的建议
          Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。这样weight就可以理解为占比了  
          这样的话,layout_weight就可以理解为按比例分父窗体的空间了!!
    展开全文
  • android:layout_width="match_parent"  android:layout_height="match_parent" 占据全部 ------------  android:layout_width="wrap_content"  android:layout_height="wrap_content
            android:layout_width="match_parent"

            android:layout_height="match_parent"


    占据全部


    ------------

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

    只占据自己那部分

    展开全文
  • Layout_width,Layout_height这两个参数设置View在布局中的长宽的,这个View必须存在于一个父布局中,这两个参数才会有效。 比如我们设置页面布局只有一个button 发现我们我设置的layout_height,layout_width没有...

    Layout_width,Layout_height这两个参数设置View在布局中的长宽的,这个View必须存在于一个父布局中,这两个参数才会有效。

    比如我们设置页面布局只有一个button

    发现我们我设置的layout_height,layout_width没有作用

    所以 如果页面的xml布局中只有这一个View的话,它的Layout_width,Layout_height参数是不起作用的。

    需要再嵌套一个布局


    运行一下 :

    .

    那么问题来了:

    按这样说那最外层的RelativeLayout的Layout_width,Layout_height不也应该不起作用了吗?

    不,在setContentView()方法中,Android会自动为当前页面再嵌套一个FrameLayout.使这个页面的布局Layout_width,Layout_height生效

    展开全文
  • 二、layout_weight与layout_width 三、layout_gravity与gravity 一、layot_margin与padding layot_margin 指定控件与外部(上下左右方向上)之间的距离 padding 指定控件与内部控件之间的距离 下面介绍一个例子 方便...
  • 转载自: ...但却不能只有heigh ,width,而没有Layout _width ,layout_height,因为那样的组件会看不到。如果你要使用heigh ,width的话,就要先设置Layout _wi
  • layout_width和width,layout_height和height

    千次阅读 2016-01-05 20:09:31
    对于每个组件,可以独自的使用Layout _width ,layout_heigh直接的...android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".当然,它也可以像前者一样,设置数值的. 并且,一个组件可以只有
  • //是这么个问题。   //其实它应该是这样才对: ...//在item文件里面的,有点的控件应该是 android:layout_width="match_parent" 最大化。 //但是却表现为: android:layout_width="wrap_conte...
  • 布局无法加载,xml也没有错误,提示NOTE: One or more layouts are missing the layout_width or layout_height attributes. These are required in most layouts 关闭Android Studio 进入C:\Users\UserName.android...
  • 在Android的布局中,确定控件的大小一定会用到layout_width和layout_height,这两个属性决定了控件的大小,但是还有两个属性width和height几乎没有被用到。从属性名来讲都是控制控件长宽的,那么这两个属性之间有...
  • 分析xml根节点layout_width或者layout_height没有效果的原因
  • 解决自定义View 设置 layout_width,layout_height为wrap_content时还是充满父类代码如下 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure...
  • layout_width layout_height 0dp的问题

    千次阅读 2013-11-16 18:16:15
    按比例显示LinearLayout内各个子控件,需设置android:layout_width="0dp",如果为竖直方向的设置android:layout_height="0dp"。 在这种情况下某子个控件占用LinearLayout的比例为:本控件weight值 / ...
  • width与layout_width,height与layout_height的区别 1、属性值的区别: width, height 只能为一些具体的数值,如”50dp”等,系统不支持wrap_content,fill_parent,match_parent, 如果非要强制性设置,编译会...
  • Render errors:One or more layouts are missing the layout_width or layout_height attributes如下图所示: 这个时候只要将Nexus 4 的android设备切换为其他类型的设备比如Nexus 5,试试看哪个可以
  • android:layout_width:指定该子组件的布局宽度; 他们分别支持3种属性值,match_parent,fill_parent,wrap_content。match_parent:指定子组件的高度、宽度与父容器组件的高度、宽度相同。 fill_parent:作用与...
  • 表示剩下的都给我 android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_ver
  • 在代码中设置 layout_width、layout_height

    万次阅读 2010-05-17 13:47:00
    layout_width layout_height 可以直接在 xml中设置,比如; android:orientation="vertical" android:layout_width="fill_parent
  • Android Studio开发中,添加了一个基于DatePicker后报错如下:One or more layouts are missing the layout_width or layout_height attributes xml version="1.0" encoding="utf-8"?> xmlns:android=...
  • 当使用view的layout_weight属性时,可以将layout_width设置为0,原因是这样可以让系统减少一次长度或宽度的计算。 官方解释如下: In order to improve the layout efficiency when you specify the weight,...
  • 如果是vertical则需要对height进行设置 我们经常见到 android:layout_width="0dp" android:layout_weight="xxx"类似这种的布局而且如果设置了android:layout_width="0dp" 不设置...
  • 国家代码的收集方式跟桌面一样:有SIM卡,取SIM卡国家代码;... android:layout_width="0dp" android:layout_width="fill_parent" 改成 android:layout_width="wrap_content" 就让android:layout_weight="1"无效
  • 标签中必须加android:layout_height和android:layout_width属性。如果不加,程序加载xml文件setContentView时会报错。
  • android:layout_width="368dp" android:layout_height="300dp" tools:layout_editor_absoluteY="0dp" tools:layout_editor_absoluteX="8dp"> 设置为match_parent 自己变为368dp
  • Unknown attribute android:layout_width...

    千次阅读 2018-10-19 13:32:46
    Unknown attribute android:layout_width, layout_height, id, gravity, layout_gravity, padding xml 标签界面属性全部报黄色,并且新建标签不会自动导入android:layout_width和android:layout_height. Tools-&...
  • android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/dimen_2X" android:paddingRight="@dimen/dimen_2X" android:columnCount="5" > ...
  • layout_width和width有什么区别

    千次阅读 2016-03-23 11:41:33
    我们在写布局文件的时候,声明控件的时候layout_width和layout_height是控件必须的属性。其实控件还有一个width属性,只不过我们一般不需要设置它。虽然我们不常用,但是我们也有必要去了解它。那么这两者之间究竟有...
  •  layout_height="0dip" 或者 layout_width="0dip"  这里的意思是不是用具体的数值来计算高度或者宽度,而是和layout_weight 一起来使用的。经常会有这样的写法: 同一个LinearLayout (假设是横向的) 中 有几...
  • 在一个LinearLayout布局里水平放了2个ListView,两个ListView设定为Layout_width=“wrap_content”,但是设置Layout_weight时发现两个ListView的宽度与设定的Layout_weight值相反,当设置Layout_width=0dp”后,两个...
  • 在网上搜索了很多关于layout_weight的文章,众说纷纭,且都不准确。后来自己动手测试,通过分析计算得出以下结论...1、如果LinearLayout在其子组件相应排列方向上的大小值(layout_width/height)为wrap_content,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,994
精华内容 15,597
关键字:

layout_width