美文网首页
AS不能拖出满意的布局效果

AS不能拖出满意的布局效果

作者: 灰灰手记 | 来源:发表于2016-12-25 01:38 被阅读267次

整理旧笔记


实现如下布局:

Eclipse拖出来的布局

要求:
1、不用weight控制;
2、不写死大小;
3、只能一个ViewGoup套3个子View,不能多东西。

这是个典型的TitleBar布局,实现起来很简单,在Eclipse里面几下就拖出来了,但是换到AS里面,却怎么都拖不出来,只能手写代码实现。

AS拖出来的布局1 AS拖出来的布局2

其实并不是AS比Eclipse差,而是出了新属性之后,AS默认用了新属性,而新旧属性存在一些差异。

对比Eclipse的代码和AS的代码,重点差异在中间的TextView。
*** “#” 号用于标识差异部分 ***
Eclipse代码:(对应上面第一张图)

<TextView android:text="TextView"
    android:layout_width="wrap_content"        
    android:layout_height="wrap_content"
    android:id="@+id/textView2"
    android:gravity="center"
    android:layout_alignBottom="@+id/button2"
    android:layout_alignParentTop="true"
#    android:layout_toLeftOf="@+id/button3"
#    android:layout_toRightOf="@+id/button2" />

AS代码1:(对应上面第二张图)

<TextView android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView2"
    android:gravity="center"
    android:layout_alignBottom="@+id/button2"
    android:layout_alignParentTop="true"
#    android:layout_toLeftOf="@+id/button3"
#    android:layout_toRightOf="@+id/button2"
#    android:layout_toEndOf="@+id/button2" />

AS代码2:(对应上面第三张图)

<TextView android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView2"
    android:gravity="center"
    android:layout_alignBottom="@+id/button2"
    android:layout_alignParentTop="true"
#    android:layout_toRightOf="@+id/button2"
#    android:layout_toLeftOf="@+id/button3"
#    android:layout_toStartOf="@+id/button3" />

可以看到,AS拖出来的代码里面多了一个新属性:layout_toStartOf / layout_toEndOf 。也正是应为这个多出来的属性,导致怎么都拖不出想要的效果。


解决方法:
1、去掉多出来的属性,回到Eclipse的状态。

不建议,因为新属性出来是有它的用处的,如果去掉,那么可能在某些地方就会出现问题。

2、补齐对应的新属性,保持兼容状态。

如下面的代码,当这两个新属性同时出现时,布局效果就回到了上面第一张图的状态。

<TextView android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView2"
    android:gravity="center"
    android:layout_alignBottom="@+id/button2"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/button2"
#    android:layout_toEndOf="@+id/button2"
    android:layout_toLeftOf="@+id/button3"
#    android:layout_toStartOf="@+id/button3" />

Start/End是新加的,是为RTL设计的,用AS写Left/Right时,会建议换用(或者同步写上)Start/End,如果不需要适配RTL,可以忽略AS的提示。此外,涉及Android版本兼容性问题时,请参考下面官方说明。

NOTE:
If your minSdkVersion is less than 17, you should add both the older left/right attributes as well as the new start/right attributes. On older platforms, where RTL is not supported and the start/right attributes are unknown and therefore ignored, you need the older left/right attributes.

相关文章

  • AS不能拖出满意的布局效果

    整理旧笔记 实现如下布局: 要求:1、不用weight控制;2、不写死大小;3、只能一个ViewGoup套3个子V...

  • storyboard拖线 改变NSLayoutConstrain

    以前用storyboard时候 把约束拖出来属性 改变约束时候 总是实现不了动画效果 用frame布局时候用UIV...

  • 经典页面布局学习

    总结几种常用的页面布局 上中下布局 页面运行效果: 左右两栏布局 页面运行效果: 左右两栏纯浮动实现宽度固定,不能...

  • CSS布局

    布局方式 一列布局 效果: 二列布局 效果: 三列布局 效果: 混合布局 效果: 布局分析 1、标准流 常见块级元...

  • 可折叠式标题栏

    CollapsingToolbarLayout 一种华丽的效果布局,不能单独存在,只能作为AppBarLayout...

  • ListView和RecyclerView的主要区别

    布局效果不同 ListView的布局单一,只有一个纵向效果。 RecyclerView的布局效果丰富,可以在Lay...

  • ScrollLayout:上滑拖出抽屉效果

    在ScrollView或者ListView里面使用ViewPager.支持手势上拉滑出,中途停顿,下滑退出页面,类...

  • 2018-06-04心得

    说一说html中的布局吧:刚开始接触的时候感觉布局没有什么太大的作用,在页面上看到自己想要的效果就心满意足了,而代...

  • jQuery实现瀑布流布局-木桶流布局

    题目1: 实现一个瀑布流布局效果 效果 代码 题目2:实现木桶布局效果 效果 代码

  • 小trick之tools

    以前写布局时为了观看布局效果,会写些静态的测试数据,以便在androidstudio中观察布局的效果.等到写完布局...

网友评论

      本文标题:AS不能拖出满意的布局效果

      本文链接:https://www.haomeiwen.com/subject/tnurvttx.html