Android 根据需要排列两个文本视图,或者甚至在父视图中分发它们
我已尝试使用Android 根据需要排列两个文本视图,或者甚至在父视图中分发它们,android,android-layout,textview,Android,Android Layout,Textview,我已尝试使用LinearLayout/layout\u weight或RelativeLayout,但无法使布局按预期运行 我想做的是一个布局,其中两个文本视图水平排列,中间有一个分隔符。(包含)布局具有恒定的最大宽度,但可能小于(但不大于)该宽度。两个textview的宽度应取决于其内容,但也应具有上边界,以便它们都适合此布局 这是两种情况的可视化: a) 两个textview都适合它们的布局容器,并且应该在它们之间用分隔符对齐。下面,包含的布局由外括号定义,可能大于文本视图 [[abcdef
LinearLayout
/layout\u weight
或RelativeLayout
,但无法使布局按预期运行
我想做的是一个布局,其中两个文本视图水平排列,中间有一个分隔符。(包含)布局具有恒定的最大宽度,但可能小于(但不大于)该宽度。两个textview
的宽度应取决于其内容,但也应具有上边界,以便它们都适合此布局
这是两种情况的可视化:
a) 两个textview
都适合它们的布局容器,并且应该在它们之间用分隔符对齐。下面,包含的布局由外括号定义,可能大于文本视图
[[abcdefgs][delim][12334345] ]
(容器)布局宽度可以是wrap\u content
或fill\u parent
b) 两个textview
都不适合其布局容器的(最大)宽度。然后,它们应均匀分布在布局内部(最大宽度)。文本视图的文本将被截断
..... 50% ..... ..... 50% .....
[[abcdefghijk...][delim][123456789012...]]
有人知道如何做到这一点吗?我不知道这是否是你想要的(因为你的问题模棱两可),但看看这个布局是否有帮助:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:text="TextView" />
<View
android:layout_width="2dp"
android:layout_height="fill_parent"
android:background="#99cc00" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:text="TextView" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
其中两个文本视图之间的视图
表示分隔符。在两个文本视图中插入更多文本,查看它们占用的空间。好。如果文本视图占用的空间比其父视图少,则可以正常工作。文本越多,垂直空间分布(textA | delim | textB)约为70%| 30%。两者(textA,textB)都被截断,但不相等。因此,它比我的版本更好,它的相对位置(从左到右对齐)只有文本B被截断。@beta当我测试布局时,我对两个文本视图使用了相同的(精确的)文本(如“sdfjfdsfsdfbdjfbdsjfbdsjkfbdsjf”
),并且它工作正常(您可以尝试并测试它)。我猜两个textview
具有不同的宽度,这使得layout\u weight
无用。在运行一些测试之后,我认为您无法在xml布局文件中实现这种类型的布局。我之所以这么说,是因为你最终将不得不在某个地方使用layou-weight
,这将迫使你的textview
具有相同的宽度,而它们不应该具有相同的宽度(例如:当第二个TextView
远大于第一个TextView
时,第一个TextView
和分隔器之间会出现巨大的间隙,因为布局权重将被分割50%)。我没有测试过任何东西,但您可以尝试在代码中安排文本视图
,但这很容易会变得混乱。我也是这么认为的。参数布局权重只共享剩余的空白空间,不限制空间。我有类似的问题,在多次尝试用xml解决后,结果是custom布局,基于线性布局,请参见我的答案