2016-12-28 4 views
2

[setLineSpacing] (https://developer.android.com/reference/android/widget/TextView.html#setLineSpacing(float, float)) не работает хорошо в pre-lollipop. В интервале до леллипополя линия фактически меняет высоту линии, которая также влияет на строку списка.Изменение интервала между линиями

Pre-леденец:

Prelolipop

леденец, а позже:

Lollipop

ли кто-нибудь нашел решение? Возможное решение может быть центрирования текста внутри строки, like css:

css

Код:

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello \n World!" 
    android:lineSpacingMultiplier="2"/> 
+0

вы c используйте определенный шрифт и размер, определенные в xml, например: android: focusable = "true" android: fontFamily = "sans-serif" android: textStyle = "bold" android: typeface = "normal" android: textSize = «25dp» по вашему выбору –

+0

'android: textSize' не подходит для меня, потому что мне нужно расстояние между линиями – neworld

+0

, пожалуйста, поделитесь своим кодом, мне нужно посмотреть, что вы используете. –

ответ

0

вы можете попробовать это

Вы можете использовать lineSpacingExtra и lineSpacingMultiplier в файле XML ,

android:lineSpacingMultiplier="1.2" 

или число больше 1

android:lineSpacingExtra="xxdp" 

это работает для меня упаковывают Edit-текста (многострочный) и кнопки. Надеюсь, что это помогает вам

+0

К сожалению, межстрочный интервал добавляет дополнительное пространство ниже последней строки на устройствах с предварительным лечением (см. Прилагаемый клип) (https://i.stack.imgur.com/9MnI3.png) – neworld

0

попробовать это это для кнопки:

первый код для XML-файла для кнопки

<Button 
     android:id="@+id/btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Change Fourth TextView Line Spacing" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true" 
     /> 

теперь код Java:

private Button mButton; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      // Get the application context 
      mContext = getApplicationContext(); 

      // Get the activity 
      mActivity = MainActivity.this; 


mButton = (Button) findViewById(R.id.btn); 

// Programmatically set the line spacing of fourth TextView 

mTextViewFourth.setLineSpacing(0,1.5f); 

} 

в этот интервал выполняется программно. Это пример кода. Надеюсь, он поможет вам

+0

Устанавливать интервал программно работает так же, как устанавливать их через xml. Он изменяет высоту строки, а не расстояние между строками в устройствах с предварительным леоптипом. – neworld

+0

ok Позвольте мне найти другую альтернативу –

+0

эй, вы можете сделать что-то одно, отредактируйте текст и сделайте его кнопкой, так как приведенное выше решение хорошо работает для редактирования текста, а затем вы можете добавить слушателя для редактирования текста таким образом, что ваш текст редактирования будет вести себя как кнопка и проблема с интервалом также будут решены. Я сделал кнопку редактирования текста несколько раз. вы можете попробовать эту альтернативную надежду, это поможет вам –

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