Closed yunnec closed 3 years ago
抱歉, 还没考虑到需要支持RTL
的情况!
你可以把UI设计
和需求
给我看下么?
目前你可以用动态addView
的形式达到效果.
不太方面直接传UI,基本是这个样子的,上下两个tablayout,其中二级tablayout的item会比较多,具体数量是从服务端获取的。比较关键的点是要支持RTL。
上述布局 要变成 TAB1-3 TAB1-2 TAB1-1 TAB2-4 TAB2-3 TAB2-2 TAB2-1
然后其他代码不变, 只是单纯的RTL
布局方式? index
需要RTL
吗?
我这边index可能不太用的到,因为比较紧急,我先使用RTL情况下切换数据源的方式来实现了。能支持index的话还是更好一些。
@angcyo 能不能扩展布局从右到左方向如图。
布局不同index都是一样的,比如“更新”item index==0
需求+1,应用需要支持阿拉伯语。基本可以理解为正常用户布局的镜像。就是对Rtl的支持。
这个东西理论上不是通过改变数据源方式进行支持的。像原生控件,TextView,ViewGroup默认都是支持的,只要语言跳转为阿拉伯语,UI自动镜像。
需求+1,应用需要支持阿拉伯语。基本可以理解为正常用户布局的镜像。就是对Rtl的支持。
如果布局支持RTL
, 那滚动方向是不是和LTR
反过来了?
比如: LTR
时, 滚动有效值是0~1000
, 但是RTL
时, 滚动有效值就是-1000~0
? 是这样的么?
应该不是吧。你看一下LinearLayout的源码,他就是把索引currIndex=count-1,换句话说就是tab的tab第一个跑到了最后一个,反转过来。其他应该不动。android-29 LinearLayout line:1750。点击事件:最后一个index成了第一个。
LinearLayout
不涉及滚动, 只具备布局的参考价值.
看了下HorizontalScrollView
的代码, 发现滚动也是反过来的.
3.0.0
后, 支持RTL
.
注意:
Demo
中使用的是系统ViewPager
, 默认是不支持RTL
的.
如果是像阿拉伯语这种需要左右颠倒的语言,需要怎样做比较好?动态添加TextView然后改变数据源吗