2012-07-24 1 views
3

ОКОНЧАТЕЛЬНЫЙ РЕДАКТ: Хорошо, но полный хак, но на данный момент я похож на «meh», это работает. Все, что я сделал, чтобы исправить проблему, это добавить android:lines="10" в TextView, и он показал все, как в 2.2 и ICS/JB. Всего взломать, потому что это не абстрактное вообще, но что угодно: P..Thanks всем, кто помог!Текст отключается в диалоговом окне

У меня возникли проблемы с отображением текста в специальном диалоговом окне с Gingerbread (API 10). Единственный отображаемый текст - первая строка как shown here. В Froyo, ICS и JB отображается with every line of text shown. Я считаю, что это вещь XML, но я не уверен. Где я иду не так?

Edit: То, что я пробовал:

-Изменение в RelativeLayout к LinearLayout

-Добавление в ScrollView

-Putting мои строки в одной строке

-при requestLayout() и forceLayout()

-производить функции диалога в отдельном классе

вне по принимать поля в моей кнопки

-при \ п вместо HTML

-AlertDialog

-inputType и SingleLine XML атрибуты на моем TextView

Я думаю, есть один или более, что я забыл два ..

Вот XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_root" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/dia_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="17dp" 
     android:padding="5dp"/> 

    <View 
     android:id="@+id/bar" 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:background="#CCCCD0" 
     android:layout_below="@+id/dia_text"/> 

    <Button 
     android:id="@+id/dialogbuttongotit" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/dialog_confirm" 
     android:textSize="20dp" 
     android:layout_marginTop="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_below="@+id/bar"/> 
</RelativeLayout> 

Вот код:

final Context context = this; 
public void addListenerOnRectHelpButton() { 

    img = (ImageButton) findViewById(R.id.rect_img); 
    img.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

       //create a new dialog 
      final Dialog dialog = new Dialog(context); 
      dialog.setContentView(R.layout.custom_dialogs); 
      dialog.setTitle("Rectangular Area"); 

      // set the custom dialog text 
      TextView text = (TextView) dialog.findViewById(R.id.dia_text); 
      String dialog_rect_txt = "<u>Area of a Rectangular Channel</u><br />" + 
        "Height x Width (H x W)<br />--Example:<br />" + 
        "Height: 3ft, Width 5ft<br />" + 
        "H x W = 3ft x 5ft = 15ft<sup>2</sup><br />"; 
      text.setText(Html.fromHtml(dialog_rect_txt)); 

      Button dialogButton = (Button) dialog.findViewById(R.id.dialogbuttongotit); 
      // if button is clicked, close the custom dialog 
      dialogButton.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        dialog.dismiss(); 
       } 
      }); 

      dialog.show();    

     } 

    }); 

} 
+0

Предлагаю использовать библиотеку поддержки и фрагмент диалога. – schwiz

+0

Или вы можете просто поместить свой текст в scrollView ... – yahya

+0

@yahya Я попытался поместить его в scrollView, и это не решило проблему:/ –

ответ

0

Имея вы пробовали вызов requestLayout() на TextView?

... 
text.setText(Html.fromHtml(dialog_rect_txt)); 
text.requestLayout(); 
... 
+0

Попытка этого сейчас..ид: просто попробовала ... не работает:/ –

0

Почему бы не просто использовать AlertDialog вместо того, чтобы создавать свои собственные?

Dialog dlg = new AlertDialog.Builder(this).setTitle(
    "Rectangular Area").setMessage(dialogRectText).setPositiveButton(
    "Got It", clickListener).create(); 
dlg.show(); 
+0

Я попробовал AlertDialog и получил ту же проблему. Я также просто попробовал (с AlertDialog), поместив строку с NO новыми строками и [в конечном итоге с этим] (http://i.imgur.com/iEigT.png). Это означает, что в 2.3 он не будет уважать ни мой пользовательский диалог, ни макет/высоту AlertDialog? Очень странно... –