有一個多行文本的textView,如果文本不超過顯示空間,就設置重力向上
tv.setGravity(Gravity.TOP);
如果文本過多超出范圍,我需要顯示文本的結尾部分。
tv.setGravity(Gravity.BOTTOM);
布局:
<RelativeLayout
android:id="@+id/textLayout"
android:layout_marginTop="16dp"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:orientation="vertical"
android:visibility="visible" >
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:gravity="top"
android:text="Long text bla bla."
android:textColor="@android:color/black"
android:textColorHint="@android:color/black"
android:textSize="37sp" />
...
</RelativeLayout>
不知道應該怎麼讓應用能判斷文本有多長?有沒有超出范圍。每個屏幕尺寸不同所以不能通過硬編碼設定行數判斷。
在LinearLayout
中加入TextVew
,然後比較TextVew 和linearlayout 的高度
<RelativeLayout
android:id="@+id/textLayout"
android:layout_marginTop="16dp"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:orientation="vertical"
android:visibility="visible" >
<LinearLayout
android:id ="@+id/linear"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:gravity="top"
android:text="Long text bla bla."
android:textColor="@android:color/black"
android:textColorHint="@android:color/black"
android:textSize="37sp" />
比較高度:
if(text.getHeight()>linear.getHeight()){
//Here TextView longer than available space
}