2015-03-08 4 views
0

У меня есть горизонтальный LinearLayout с несколькими TextViews. Поскольку пользователь вводит некоторые цифры в представление результата, он расширяется, а другие TextViews становятся меньше. Я хочу, чтобы все TextViews имели фиксированную ширину и спрятали первые цифры, когда содержимое слишком велико. Я экспериментировал с окружающим результатом результата с ScrollView или setMovementMethod(new ScrollingMovementMethod()) или TableLayout без везения. SO questionTextView растет как пользовательский тип

<LinearLayout 
    android:id="@+id/assignment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="5" 
    style="@style/Formula"> 

    <TextView 
     android:id="@+id/operandFirst" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="50" 
     style="@style/FormulaValue" /> 

    <TextView 
     android:id="@+id/operator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="+" 
     style="@style/FormulaOperator" /> 

    <TextView 
     android:id="@+id/operandSecond" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="51" 
     style="@style/FormulaValue" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:text="=" 
     style="@style/FormulaEqualSign" /> 

    <TextView 
     android:id="@+id/result" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="101" 
     style="@style/FormulaValue" /> 

    <Space 
     android:layout_weight="1" 
     android:layout_width="20dp" 
     android:layout_height="20dp" /> 
</LinearLayout> 

Updated image

ответ

1

Это может быть сделано путем определения weight всем textView, что вы уже делаете, но и установить android:layout_width="0dp" когда вы даете weight.

Edit:

Если вы не хотите расти ваш textView вертикально, чем добавить android:singleLine="true" атрибут к каждому textView вашего макета.

Чтобы удалить ненужные пробелы в правой части, удалить android:layout_weight="1" атрибут из <space... />

Так было бы,

<Space 
    android:layout_width="20dp" 
    android:layout_height="20dp" /> 
+0

Одна проблема решена с ответом - другие TextViews имеют фиксированный размер, большой ! С другой стороны, после виджета Space отсутствует неиспользованное пространство (даже если я удаляю его атрибут веса). Вторая проблема заключается в том, что TextView растет вертикально (другие строки). Я предпочитаю, чтобы он скрывал некоторые цифры. –

+0

Используется, есть несколько строк, и мне нужно пространство в конце строки. Я могу попытаться поэкспериментировать с правым полем. –

+0

Когда мы удалили Пробел, weightSum = "5" стал неверным. Когда я удаляю его, он работает как шарм. –

Смежные вопросы