在我的视频播放器中,我有三个文本视图(标题,电池百分比,时间)。问题是标题文本太长时修剪时间文本。如何解决这个问题?是否有任何动态调整textview长度和位置的解决方案?这是我的代码和截图---
<LinearLayout
android:id="@+id/top_panel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#45000000"
android:orientation="horizontal" >
<TextView
android:id="@+id/title_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:text="abcdefghijklmnopqrstuvwxyz1234567"
android:paddingLeft="5dp"
android:textColor="#ffffff"
android:textSize="15sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal" >
<TextView
android:id="@+id/batPer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:lines="1"
android:text="100%"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/timetxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:text="03:07AM"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
您应该将LinearLayout
更改为RelativeLayout
。您可以将android:ellipsize="marquee"
或android:ellipsize="end"
分配给第一个title_txt
即使我已将包含电池百分比和计时器的LinearLayout
的宽度从android:layout_width="fill_parent"
更改为android:layout_width="wrap_content"
与你的标题增加或减少计时器的文本无关,百分比将保留在右侧。
尝试使用以下代码。
<RelativeLayout
android:id="@+id/top_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#45000000"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/title_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/ll_timer_battery_perc"
android:ellipsize="marquee"
android:lines="1"
android:marqueeRepeatLimit="marquee_forever"
android:paddingLeft="5dp"
android:text="abcdefghijklmnopqrstuvwxyz1234567"
android:textColor="#ffffff"
android:textSize="15sp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/ll_timer_battery_perc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:orientation="horizontal" >
<TextView
android:id="@+id/batPer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:lines="1"
android:text="100%"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/timetxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:text="03:07AM"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
你正在使用android:lines =&#34; 1&#34;如果超过一行,则会使文本被修剪。如果希望文本适合textview并且所有文本都被置换
,则应删除此行或扩展为2行答案 2 :(得分:1)
使用Weight
更改此方式。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal" >
<TextView
android:id="@+id/batPer"
android:layout_weight=".7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:lines="1"
android:text="100%"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/timetxt"
android:layout_weight=".3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="03:07AM"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />
</LinearLayout>