Гравитация текста элемента списка

Я использую Arrayadapter с дочерним элементом android.R.layout.simple_list_item_1, вот функция getView

@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (convertView == null)
        convertView = this.inflater.inflate(res, parent, false);

    TextView textView = (TextView) convertView.findViewById(android.R.id.text1);
    textView.setTextColor(ContextCompat.getColor(ctx, R.color.white_overlay));
    textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    //textView.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

    textView.setText(filterData.get(position).getTitle());
    textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);

    return convertView;

}

и я применяю фильтр к данным списка, вот код фильтра, частный класс MyFilter extends Filter {

    @Override
    protected FilterResults performFiltering(CharSequence charSequence) {
        String filterStr = charSequence.toString().toLowerCase();
        FilterResults results = new FilterResults();

        int count = data.size();
        List<Extras.Area> tempRes = new ArrayList<>(count);

        for (Extras.Area area : data) {
            if (area.getArTitle().toLowerCase().contains(filterStr)
                    || area.getEnTitle().toLowerCase().contains(filterStr))
                tempRes.add(area);
        }

        results.values = tempRes;
        results.count = tempRes.size();

        return results;
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
        filterData = (List<Extras.Area>) filterResults.values;
        notifyDataSetChanged();

    }
}

моя проблема заключается в том, что гравитация текста для каждого элемента всегда остается левой, даже если локальное направление RTL, вот пример введите здесь описание изображения

я пытался использовать пользовательский макет, но это не решило проблему для меня.


person Raafat Alhmidi    schedule 11.11.2016    source источник
comment
Легче установить гравитацию родительского представления, а не текстового представления. Если вы установите гравитацию текстового представления, текстовое представление должно быть match_parent, чтобы текст отображался справа от родительского представления.   -  person Christine    schedule 12.11.2016


Ответы (1)


Вы должны показать нам файл XML, но я предполагаю, что ваш атрибут layout_width из вашего TextView равен match_parent. Вы должны поместить layout_width в wrap_content и атрибут layout_gravity center. Надеюсь, это поможет!

person Josué de León Santana    schedule 13.11.2016
comment
на самом деле у меня нет XML-файла. Я прагматично создавал этот макет диалогового окна, теперь я создаю его в XML-файле, и это решило мою проблему :) - person Raafat Alhmidi; 17.11.2016