7赞
235
当前位置:  开发笔记 > 编程语言 > 正文

linearlayout布局嵌套,androidstudio相对布局

一般来说,我会说使用标准SDK无法做到这一点。如何反转线性布局的方向?抱歉,这不受支持。我的目标是从一个XML布局中扩展左手和右手实例。欢迎您从一个XML布局中对它们进行充气,但


一般来说,标准的SDK不能做到这一点。 但是,您可以创建一种从LinearLayout中检索所有子视图,将其从LinearLayout中删除,然后以相反的顺序添加的方法。


linearlayoutll=//inflatearraylistviews=new ArrayList (; for(intx=0; x ll.getChildCount (; x ) {views.add(ll.getchildat ) x ); } ll.removeAllViews (); for(intx=views.size ) )- 1; x=0; x--}{ll.addview(views.get(x ); }


这是最简单的方法: )


for(intk=ll.getchildcount )-1; k=0; k--; {viewitem=ll.getchildat(k; ll.removeviewat(k ); ll.addview(item ); }


用简单的方法试试这个


linearlayoutll=(linearlayout ) findviewbyid(r.id.ll1 ); viewv0=ll.getchildat(0; viewV1=ll.getchildat(1; viewV2=ll.getchildat(2; ll.removeAllViews (; LL.addview(V2; LL.addview(V1; LL.addview(v0;


可以直接在layoutDirection中控制布局的方向。 此代码检测自然方向是否为RTL,并反转方向。 很明显,可以应用自己的逻辑进行反转。


linearlayoutbuttOnscontainer=(linear layout ) findviewbyid (r.id.buttons container ); buttons container.setlayoutdirection (is RTL )? linear layout.layout _ direction _ ltr : linear layout.layout _ direction _ RTL (publicstaticboleanisrtl ) { retur rear publicstaticbooleanisrtl (locale locale ) finalintdirectiOnality=character.getdirectionality ) locale.get display name reture nality _ right _ to _ left|| direction ality==character.direction ality\}


或者,如果您想使用XML不断覆盖自然方向,请做好准备。


.


RTL检测来自于识别Android RTL语言的问题


view1 view2 view2


现在试试这个


linearlayoutparent=(linear layout ) findviewbyid ) r.id.parent; viewview1=(view ) parent.getChildAt(0) 0; //itwillgivefirstviewviewview3=(view ) parent.getChildAt(2) 2; //it will give you third view


在此,可以通过View来表示TextView、Button … .等。


如何反转线性布局的方向?


对不起,不支持。


我的目标是从XML布局中扩展左手和右手的实例。


欢迎从XML布局膨胀。 但是,必须删除其中一个子节点,并在Java代码中反转其顺序。 这可能比维护两个单独的布局文件更容易,但绝对不是自动的。


或者,我们欢迎您创建自己的LinearLayout子类来提供此函数。 或者,也可以创建LinearLayout的克隆。


Android 4.2及更高版本提供了对LinearLayout的RTL支持,但它与区域设置相关联,并应用于APP中所有级别的LinearLayout容器。


对于prev回复通知,如果要保留视图的宽度/高度并通过直接传递进行计算,也就是说要填充父/换行符,则必须显式设置。


for(intI=views.size ) )- 1; i=0; I----{viewv=views.get(I ); linearlayouthor.addview(v,v.getWidth ),v.getHeight ); }


要确认计算视图的大小,可能必须使用post。 向方向更改添加处理程序,以正确重新计算大小。


请尝试view compat.setlayoutdirection (view,direction )


推荐阅读
author-avatar
关于快乐的秘密_473
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有