这是我想要实现的简化版本。我在 RelativeLayout 中有两个视图。 一个视图 始终居中,拉伸,如果需要,另一个一个始终 该视图>并保持相同宽度。
这是一个简化的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Single line"
android:layout_toLeftOf="@+id/horiz"
android:layout_marginRight="8dp"
android:layout_centerVertical="true"
android:textSize="20sp"/>
<HorizontalScrollView
android:id="@+id/horiz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:fadeScrollbars="false"
android:fillViewport="true">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a text"
android:textSize="17sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a text"
android:textSize="17sp"/>
</TableLayout>
</HorizontalScrollView>
看起来我想要:
但是当中心视图更宽时,左视图的行为会有所不同:
如果中心视图符合父级大小则完全消失:
这就是我要做的事情:
如果有额外的空间
如果没有实现空间
有人可以提出一些建议吗?
答案 0 :(得分:1)
我不知道您真的需要RelativeLayout
,或者您也可以使用LinearLayout
但我只是将您的布局更改为LinearLayout
,将orientation
更改为{ {1}}并将horizontal
添加到android:layout_weight="1"
,一切正常。完整代码如下所示,
HorizontalScrollView
当TextView的文本开始变长时,它会在右侧占用空间,不会影响左<?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="wrap_content"
android:layout_margin="20dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Single line"
android:layout_toLeftOf="@+id/horiz"
android:layout_marginRight="8dp"
android:layout_centerVertical="true"
android:textSize="20sp"/>
<HorizontalScrollView
android:id="@+id/horiz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:fadeScrollbars="false"
android:layout_weight="1"
android:fillViewport="true">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a text a text"
android:textSize="17sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a text"
android:textSize="17sp"/>
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
并启用水平滚动