2014-11-18 2 views
1

У меня есть некоторые проблемы с переносом текста в моем приложении.Как обернуть текст в TexView Android

Вот мой макет:

<GridLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="2" 
    android:orientation="horizontal" 
    android:rowCount="2" > 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="150dp" 
     android:layout_height="225dp" 
     android:layout_gravity="left|top" 
     android:layout_column="0" 
     android:layout_rowSpan="2" 
     android:contentDescription="@string/imgdesc" /> 

    <TextView 
     android:id="@+id/tvName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_column="1" 
     android:layout_marginLeft="20dp" 
     android:layout_row="0" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/tvDescription" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_marginLeft="20dp" 
     android:layout_marginTop="10dp" 
     android:layout_row="1"/> 

</GridLayout> 

И вот результат:

result

Как вы можете видеть, часть текста из экрана, и я не действительно знаю, как это исправить.

+0

попытался с помощью 'wrap_content' для ширины tvDescription в? – Darpan

+0

да я. На самом деле сначала это было 'wrap_content', я попробовал' fill_parent' и забыл изменить его, когда я скопировал свой код. –

+0

Я пытался дать фиксированную ширину, это сработало, но почему gridlayout btw? Если не по какой-либо причине, то этот макет может быть реализован с помощью RelativeLayout. – Darpan

ответ

0

Попробуйте использовать LinearLayout для вашего дизайна вместо GridLayout:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="150dp" 
     android:layout_height="225dp" 
     android:contentDescription="@string/imgdesc"/> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="5dp" 
     android:orientation="vertical"> 
     <TextView 
      android:id="@+id/tvName" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/tvDescription" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp"/> 
    </LinearLayout> 
</LinearLayout> 
0

просто заменить ниже код с текущим кодом, надеюсь, что эта работа для вас.

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="2" 
    android:orientation="horizontal" 
    android:rowCount="2" > 
<ImageView 
    android:id="@+id/img" 
    android:layout_width="100dp" 
    android:layout_height="225dp" 
    android:layout_column="0" 
    android:layout_gravity="left|top" 
    android:layout_rowSpan="2" 
    android:contentDescription="@string/app_name" 
    android:src="@drawable/ic_launcher" /> 

<TextView 
    android:id="@+id/tvName" 
    android:layout_width="wrap_content" // this line change 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_gravity="left" 
    android:layout_marginLeft="20dp" 
    android:layout_row="0" 
    android:ems="5" //this line added 
    android:layout_marginRight="10dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/tvDescription" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:ems="5" 
    android:layout_gravity="fill_horizontal" 
    android:layout_marginLeft="20dp" 
    android:layout_marginTop="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_row="1" /> 

</GridLayout> 

Примечание: Может быть много способов сделать то же самое.

0

попытка ниже код, он будет работать

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/img" 
    android:layout_width="150dp" 
    android:layout_height="225dp" 
    android:layout_gravity="left|top" 
    android:layout_column="0" 
    android:layout_rowSpan="2" 
    android:scaleType="fitXY" 
    android:contentDescription="test" /> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/tvName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 
    android:layout_column="1" 
    android:layout_marginLeft="20dp" 
    android:layout_row="0" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/tvDescription" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_gravity="fill_horizontal" 
    android:layout_marginLeft="20dp" 
    android:layout_marginTop="10dp" 
    android:layout_row="1"/> 
</LinearLayout> 
</LinearLayout> 
Смежные вопросы