2014-03-31 31 views
-1

我想設置三個textview包含在同一行。我使用LinearLayout。無法正確設置。如何設置3 Textview同樣的線條像這樣

這裏是我的XML:

<LinearLayout 
    android:id="@+id/tableRow3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" > 

     <TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="@string/or" 
    android:textSize="25sp" 
    android:singleLine="true" 
    /> 

     <TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:textColor="#54d66a" 
    android:text="@string/login" 
    android:textSize="25sp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    /> 

     <TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 

    android:text="@string/email_details" 
    android:textSize="25sp" 

    /> 


    </LinearLayout> 

我可以知道什麼是實現我的目標也許這個問題太基本了正確的方法,但餘did't找到合適solution.Please幫助我嗎?。

+1

給機器人:layout_weight = 「1」 到每個TextView的 – Manishika

+1

@Manishika重量不適用於此。 – SilentKiller

+1

@SilentKiller爲什麼 – Blackbelt

回答

1

沒有必要使用3個TextView。您可以將整行整合到一個TextView中。有兩種可能的解決方案。 1.您可以使用SpannableString來達到同樣的效果。有關Spannables的更多信息,請參閱post。 2.您可以使用Html標籤修飾該字符串。看到這個post

2

你只需要從TextView中刪除android:ems="10"它會自動在單行。檢查這個代碼。

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:singleLine="true" 
     android:text="@string/or" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/login" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#54d66a" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/email_details" 
     android:textSize="25sp" /> 
</TableRow> 
+1

@Amiya你不應該要求這樣的upvote。這是與StackOverflow規則相反的。如果答案對你有幫助,你得到了解決方案,你應該接受有用的答案 – SilentKiller

0

如果你想添加一行,你應該添加水平線性佈局。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tabs_layout" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
> 
<TextView 
android:id="@+id/textView2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"   
android:textAppearance="?android:attr/textAppearanceLarge" 
android:text="@string/or" 
android:textSize="25sp" 
android:singleLine="true" 
/> 

<TextView 
android:id="@+id/textView3" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:ems="10" 
android:textColor="#54d66a" 
android:text="@string/login" 
android:textSize="25sp" 
android:textAppearance="?android:attr/textAppearanceLarge" 
/> 

    <TextView 
android:id="@+id/textView4" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:ems="10" 
android:text="@string/email_details" 
android:textSize="25sp" 

/> 
    </LinearLayout> 
0

我發現你不提你的佈局中,EMS值我修改您的佈局中使用這一解決方案...

 <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" > 

     <TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="or" 
    android1:paddingRight="5dp" 
    android:textSize="25sp" 
    android:singleLine="true" 
    /> 

     <TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#54d66a" 
    android:text="login" 
    android1:paddingRight="5dp" 
    android:textSize="25sp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    /> 

     <TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="with your e-mail address" 
    android:textSize="25sp" 

    /> 


    </TableRow> 
1

如果你只是想實現不同的文本顏色你可以使用HTML標記,例如:

String html = "or <font color="green">login </font> with your email address"; 
myTextView.setText(Html.fromHtml(html), TextView.BufferType.SPANNABLE); 
0

使用下面的代碼:

tvWeblink = ((TextView) findViewById(R.id.textView1)); 
tvWeblink.setClickable(true); 
tvWeblink.setMovementMethod(LinkMovementMethod.getInstance()); 
String text = "or <a href=\"<your_login_url>\"> login </a> with your e-mail address."; 
tvWeblink.setText(Html.fromHtml(text)); 
0

使用Spannable字符串: -

TextView textView = (TextView)findViewById(R.id.mytextview01); 
Spannable wordtoSpan = new SpannableString("or Login with your e-mail address");   
wordtoSpan.setSpan(new ForegroundColorSpan(Color.GREEN), 3, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //3- start of character 8- end of character to apply forground color 
textView.setText(wordtoSpan); 

使用HTML字符串: -

爲了更好的語言兼容性的支持,加上內部res/values/strings

值的串/串

<string name="Message">or<![CDATA[<font color='green'> Login</font>]]> with email address</string> 

段:

textView.setText(Html.fromHtml(getString(R.strings.Message))); 
0
Check this one 
<LinearLayout 
    android:id="@+id/tableRow3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:weightSum="3" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:singleLine="true" 
     android:text="or" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:text="login" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#54d66a" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:text="detail" 
     android:textSize="25sp" /> 
</LinearLayout> 
相關問題