2015-05-28 42 views
-3

我有這種佈局。我的問題是,當txtName有一個很長的值時,txtAge不能被看到。請幫助我解決這個問題,而不使用maxWidth屬性。提前致謝。TextView隱藏,如果其他文本很長

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/txtName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textColor="@color/white" 
     android:textSize="@dimen/textLarge" /> 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textColor="@color/white" 
     android:textSize="@dimen/textLarge" /> 
</LinearLayout> 
+0

你需要一個線性佈局?或者我們可以使用相對佈局? –

+0

是的,我們可以使用任何這些佈局。 – batista

+0

在此處添加了另一個答案 –

回答

0

試着用這個。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical" 
android:orientation="horizontal" > 

<com.klab.lods.en.custom.views.LDTextViewBold 
    android:id="@+id/txtName" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 
    android:layout_weight="1" 
    android:gravity="center_vertical" 
    android:singleLine="true" 
    android:textColor="#000000" 
    android:textSize="@dimen/activity_horizontal_margin" /> 

<com.klab.lods.en.custom.views.LDTextViewBold 
    android:id="@+id/txtAge" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 
    android:layout_weight="1" 
    android:gravity="center_vertical" 
    android:singleLine="true" 
    android:textColor="#000000" 
    android:textSize="@dimen/activity_horizontal_margin" /> 

+0

不工作:(txtAge仍然隱藏 – batista

+0

如何設置這些文本?使用Java代碼? –

+0

如果您在LinearLayout中給TextView賦予權重,則應給予寬度或高度(取決於它是否具有垂直或水平方向)的值爲0. – belen

1

相對佈局它的定位更加良好,嘗試使用此代碼:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:padding="30dp"> 

    <TextView 
     android:id="@+id/txtName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textSize="9pt" 
     android:text="Name Surname"/> 

    <View 
     android:id="@+id/separator" 
     android:layout_width="1dp" 
     android:layout_height="5dp" 
     android:layout_marginRight="-20dp" 
     android:layout_alignRight="@+id/txtName"/> 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/separator" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textSize="9pt" 
     android:text="Age"/> 
</RelativeLayout> 

告訴我,如果我能幫助你,祝你好運!

Pd:我使用視圖作爲分隔符,因爲我使用API​​> 13,如果您使用API​​> = 17,則可以使用此命令android:layout_alignEnd =「」或android:layout_alignStart =「」。


最終的解決方案是:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:padding="30dp"> 

    <TextView 
     android:id="@+id/txtName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:layout_alignRight="@+id/separator" 
     android:layout_alignParentLeft="true" 
     android:singleLine="true" 
     android:textSize="9pt" 
     android:text="Name Surname"/> 

    <View 
     android:id="@+id/separator" 
     android:layout_width="1dp" 
     android:layout_height="5dp" 
     android:layout_alignLeft="@+id/txtAge" 
     android:layout_marginLeft="-10dp"/> 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/txtName" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textSize="9pt" 
     android:text="Age"/> 
</RelativeLayout> 
+0

仍然是一樣的txtAge隱藏。 ( – batista

+0

我嘗試在我的應用中使用我的代碼,並且txtAges不隱藏,它是可能的問題是這個組件的「com.klab.lods.en.custom.views.LDTextViewBold」...因爲如果我使用我的editText,我沒有任何問題... –

+0

10我將其更改爲TextView,仍然相同的行爲 – batista

-1

呦可以給你的TextViews這樣的重量:

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical" 
android:orientation="horizontal" > 

<com.klab.lods.en.custom.views.LDTextViewBold 
    android:id="@+id/txtName" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center_vertical" 
    android:singleLine="true" 
    android:textColor="@color/white" 
    android:textSize="@dimen/textLarge" /> 

<com.klab.lods.en.custom.views.LDTextViewBold 
    android:id="@+id/txtAge" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center_vertical" 
    android:singleLine="true" 
    android:textColor="@color/white" 
    android:textSize="@dimen/textLarge" /> 

給予寬度0dp和重量1到既會讓他們使用LinearLayout中的相同空間。如果你想讓你的txtName textView大於txtAge,只需要給txtName一個更高的權重。 我希望這會幫助你

+0

但它不是動態的。我想要做的是,文本應該永遠在一起。賦予權重就像給予視圖的最大寬度(我認爲) – batista

1

使用下面的代碼,它解決了你的問題。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:weightSum="2" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/txtName" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textColor="@color/white" 
     android:textSize="@dimen/textLarge" /> 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:textColor="@color/white" 
     android:textSize="@dimen/textLarge" /> 
    </LinearLayout> 

否則,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/txtName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:layout_weight="1" 
     android:textColor="@android:color/black" 
     android:text="Some n" 
     android:textSize="23sp" /> 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:text="age" 
     android:layout_weight="1" 
     android:minEms="3" 
     android:textColor="@android:color/black" 
     android:textSize="23sp" /> 
    </LinearLayout> 
+0

但它不是動態的。我想要做的是,文本應該永遠在一起。賦予權重就像給出視圖的最大寬度(我認爲) – batista

相關問題