Listview 项目文本重力

Posted

技术标签:

【中文标题】Listview 项目文本重力【英文标题】:Listview item text gravity 【发布时间】:2017-03-26 06:14:32 【问题描述】:

我正在将 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 扩展过滤器

    @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,每个项目的文本重力也总是留下 这是一个例子

我曾尝试使用自定义布局,但这并没有解决我的问题。

【问题讨论】:

设置父视图的重力更容易,而不是文本视图。如果你设置了textview的gravity,textview需要为match_parent才能让文本出现在父view的右边。 【参考方案1】:

您应该向我们展示 XML 文件,但我想您的 TextView 中的属性 layout_width 是 match_parent。您应该将 layout_width 放入 wrap_content 和属性 layout_gravity center。希望对您有所帮助!

【讨论】:

实际上我没有 XML 文件 .. 我正在务实地创建这个对话框布局,现在我在 XML 文件中创建它,这解决了我的问题 :)

以上是关于Listview 项目文本重力的主要内容,如果未能解决你的问题,请参考以下文章

ListView 对齐 - 如何?

ListView项目文本是不可见的

从其他窗口获取 ListView 项目文本

在 ListView 中修改文本大小时更新项目高度

如何在 ListView Widget 中使用 markdown 包(对于带有项目符号的文本)?在 ListView 中使用时没有显示

Listview 的项目位置 0 持有另一个包含 10 个项目的列表视图,每个项目打开单个活动但不同的文本数据