2017-02-05 21 views
-4

Мне нужно создать TextView Слева выровнять и выровнять по правому краю текст на той же линии и вывести вот так. Я ищу решение, используя HTML текст или что-то свойство Left текст и правый текст, некоторые вещи, как метод setCompoundDrawablesAndroid TextView Left Align и Right Align Text на той же линии

enter image description here

Это ток выход

enter image description here

и это действующий код

PackageInfo packageInfo = (PackageInfo) getItem(position); 
Drawable appIcon = packageManager.getApplicationIcon(packageInfo.applicationInfo); 
int inPixels= (int) context.getResources().getDimension(R.dimen.iconsize); 
appIcon.setBounds(0, 0, inPixels, inPixels); 
holder.apkName.setCompoundDrawables(appIcon, null, null, null); 
holder.apkName.setCompoundDrawablePadding(15); 

String appName = packageManager.getApplicationLabel(packageInfo.applicationInfo).toString(); 
Date date=new Date(packageInfo.firstInstallTime); 
SimpleDateFormat df2 = new SimpleDateFormat("dd.MM.yyyy"); 
String dateText = df2.format(date); 
holder.apkName.setText(Html.fromHtml("<b>"+appName+"</b>("+dateText+")")); 
+0

Можете ли вы уточнить? –

+1

Android TextView Left Align и Right Align Text на той же линии –

+0

О, чтобы текст был как в левом, так и в правом углу? –

ответ

1

Если вы пытаетесь избежать создания отдельного TextView, то вам, возможно, придется использовать SpannableString.

Я думаю, решение демонстрирует here

Вы могли бы получить больше идей через this link

+0

final Строка resultText = LeftText + "" + RightText; final SpannableString styledResultText = new SpannableString (resultText); styledResultText.setSpan ((новый AlignmentSpan.Standard (Alignment.ALIGN_OPPOSITE), LeftText.length() + 2, LeftText.length() + 2 + RightText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); resultTextView.setText (styledResultText) –

+1

не работает, что говорит –

+0

В сообщении есть некоторые ошибки и т. Д., Но идея SpannableString мне помогла. Спасибо! –

0

Использование двух TextViews даст вам результаты: Вот пример:

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

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weight="1" 
     android:gravity="left" 
     android:text="Text on the Left" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weight="1" 
     android:gravity="right" 
     android:text="Text on the Right" /> 
</LinearLayout> 
+1

@Хей Крунал, в вашем коде есть ошибка. Если вы используете weightSum, тогда не нужно устанавливать layuot_width для ребенка, просто сделайте это 0dp или не установите weightSum –

+0

@UmeshSonawane Я пробовал, и это работает. Существует множество способов получить желаемый результат. –

+2

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

0

Вот как выглядят после использования SpannableString. И это то, чего я хочу. Спасибо!

enter image description here

И окончательный код:

PackageInfo packageInfo = (PackageInfo) getItem(position); 
Drawable appIcon = packageManager.getApplicationIcon(packageInfo.applicationInfo); 
int inPixels= (int) context.getResources().getDimension(R.dimen.iconsize); 
appIcon.setBounds(0, 0, inPixels, inPixels); 
holder.apkName.setCompoundDrawables(appIcon, null, null, null); 
holder.apkName.setCompoundDrawablePadding(15); 

String appName = packageManager.getApplicationLabel(packageInfo.applicationInfo).toString(); 
Date date=new Date(packageInfo.firstInstallTime); 
SimpleDateFormat df2 = new SimpleDateFormat("dd.MM.yyyy"); 
String dateText = df2.format(date); 
String LeftText=appName; 
String RightText=dateText; 
final String resultText = LeftText + "\n" + RightText; 
final SpannableString styledResultText = new SpannableString(resultText); 
styledResultText.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE), LeftText.length() , LeftText.length() +RightText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
holder.apkName.setText(styledResultText); 

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

  • Нет связанных вопросов^_^