Проблема с макетом Android - PullRequest
       4

Проблема с макетом Android

1 голос
/ 29 октября 2010

У меня 2 TextView в горизонтальном LinearLayout. LinearLayout заполняет экран горизонтально. Как я могу добиться следующего поведения:

  1. Если первая TextView слишком велика, она заканчивается в конце следующим образом:

    [firstTextViewIsTooBig...|secondTextView]

  2. Если первый TextView не большой, макет должен выглядеть следующим образом:

    [firstTextViewIs|secondTextView---------]

Важно:

  • Я не знаю ширину LinearLayout, поэтому я не могу установить фиксированный maxWidth для первого TextView.
  • Second TextView всегда должен быть выровнен слева от первого, а не справа от макета.

1 Ответ

1 голос
/ 29 октября 2010

Посмотрите на

http://developer.android.com/reference/android/graphics/Paint.html#measureText(java.lang.String, int, int)

public float measureText (String text, int start, int end);
// Return the width of the text.

, что позволяет заранее рассчитать ширину текста.Исходя из этого, вы можете соответствующим образом настроить макет, добавить многоточие «...» и установить ширину.

Для ширины LinearLayout, если это FillParent, вы можете получить ширину экрана, то есть getWindow().getDecorView().getWidth(); -только после того, как он нарисован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...