android - 如果 textview 值超过 2 个字符,则一切都向右移动
问题描述
我有recyclerview
,为此,我使用了一个特定的视图。在那个视图中,我有 3textviews
和一个图像按钮。首先textview
给我看数字。其他一些虚拟文本。当我的数字超过 10(2 个字符)时,除数字外的所有内容都会向右移动。我该如何处理?
这是我的xml
文件:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<LinearLayout
android:id="@+id/linlay"
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/buses_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="25dp"
android:textColor="@color/gradStop"
android:layout_marginLeft="15dp"/>
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/buses_route_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:text="Bus Route"
android:textColor="@color/gradStart"
android:textSize="20dp"/>
<TextView
android:id="@+id/buses_cycle_duration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:text="Duration"
android:textColor="@color/gradStop"
android:textSize="20dp"/>
</LinearLayout>
<ImageButton
android:id="@+id/buses_favourites"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_favorite_border_black_24dp"
android:background="@color/transparent"
android:layout_alignParentRight="true"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
这是屏幕截图:
解决方案
尝试给予,layout_weight
因为您使用的是线性布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<LinearLayout
android:id="@+id/linlay"
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/buses_number"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="1"
android:layout_weight = "0.3"
android:textSize="25dp"
android:textColor="@color/gradStop"
android:layout_marginLeft="15dp"/>
<LinearLayout
android:layout_width="0dp"
android:layout_weight = "0.6"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/buses_route_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:text="Bus Route"
android:textColor="@color/gradStart"
android:textSize="20dp"/>
<TextView
android:id="@+id/buses_cycle_duration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:text="Duration"
android:textColor="@color/gradStop"
android:textSize="20dp"/>
</LinearLayout>
<ImageButton
android:id="@+id/buses_favourites"
android:layout_width="0dp"
android:layout_weight = "0.1"
android:layout_height="30dp"
android:src="@drawable/ic_favorite_border_black_24dp"
android:background="@color/transparent"
android:layout_alignParentRight="true"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
如您所见,TextView 将占用 30% 的屏幕宽度空间,Other (LinearLayout) 将占用 60% 的空间,ImageView 将占用 10% 的空间。我相信你可以根据你的设计改变重量,因为你得到了要点:)
推荐阅读
- bash - 是否可以使用 write com.apple.dock tilesize 在 Mojave/Sierra 上运行设置 Dock 的大小?
- angular - 角度清除缓存的路由器 url 值
- azure - 如何在 npm 任务中使用秘密任务变量
- karate - 在路径参数中使用 `/` 请求资源
- django - URL 映射无法按我的意愿工作
- rust - 有没有办法传递对泛型函数的引用并返回与参数的生命周期无关的 impl Trait?
- php - 从 Laravel Form::select 中检索旧值
- kubernetes - 入口值作为空白数组和值 - {} 有什么区别?
- vuejs2 - 在 Vue.JS 中事件总线正在侦听但不执行操作
- electron - 使用电子 v5.0.6 平台 win32 x64 打包应用程序耗时太长