2011-05-02 55 views
2

我一直試圖獲得一定的佈局,但所有的嘗試都失敗了。並排有兩個TextView,第一個伸展和限制,第二個固定

我在有限的空間內有2個textview。只要有空間同時顯示,我希望他們能夠顯示一個接一個:

| T1 T2222   | 
| T111111 T2222  | 

但是,當空間不足的情況,我想只有第一個獲得ellipsized或以其他方式切割,比如這個:

| T1111111... T2222 | 

它可能有幫助 - 或不 - 這兩個都只應該有1行。

它可以幫助 - 或不 - - 第二個寬度可以修復。

  • 我已經試過想法在Two TextViews side by side, only one to ellipsize?,但這種情況下,我的不同,因爲他們的T2是指在合適的錨,而我想有T2只要按照T1。

  • 我已經試過爲T2指定一個minWidth,但它似乎並沒有兌現;普通寬度是,但我似乎無法控制T1的行爲。

  • 我已經涉足重量,但沒有發現任何可以解決問題的東西。但那可能是我的經驗不足。

  • 我可以爲T1指定一個maxWidth,它可以按照我希望的方式進行操作,但問題是有限空間的整個寬度是未指定的。

在這一點上,我開始認爲沒有辦法做到這一點 - 除非編程方式,這是我想避免的路線。

謝謝你的任何建議。

回答

6

將連接兩個字符串並將結果放入單個TextViewellipsize="middle"設置工作?

或者一個佈局,第二個textview與右邊對齊?

| T1   T2222 | 
| T111111  T2222 | 
| T1111111... T2222 | 

更新
以的是,第二文本視圖的寬度可以是固定的能力的優勢,下面的RelativeLayout提供與期望的佈局(通過顯式設置所述第二視圖的至60dp寬度):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:gravity="fill"> 
    <TextView android:id="@+id/secondText" 
     android:layout_width="60dp" android:layout_height="wrap_content" 
     android:singleLine="true" android:layout_alignParentRight="true" /> 
    <TextView android:id="@+id/dynamicText" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" android:layout_toLeftOf="@id/secondText" 
     android:singleLine="true" android:ellipsize="end" /> 
</RelativeLayout> 

上面的代碼生成以下佈局:

| T1 T2222   | 
| T111111 T2222  | 
| T1111111... T2222 | 

寬度爲兩個TextViews之間5dp的差距。

+0

1.我沒有想到這一點,這是一個有趣的想法,但不是設計師想到的。謝謝。 2.否,T2必須在T1旁邊。 – entonio 2011-05-02 19:43:02

+0

請在我的更新中查看佈局,我希望它能爲您工作。 – rekaszeru 2011-05-02 20:42:44

+0

非常感謝!:)我放棄了這一點,但你的例子完美的作品。我會投票答覆,但我今天剛剛註冊...只是爲了記錄:沒有引力=「填充」,RelativeLayout只會從右側填充;如果T2沒有被首先聲明,則T2將是橢圓而不是T1。 – entonio 2011-05-02 21:27:35