将父级中的ListView空视图居中

时间:2013-11-19 13:33:59

标签: android listview android-listview

我有一个ListView,其中一个空视图设置为我以编程方式创建的视图。我想让它在水平和垂直方向都居中。我在搜索如何在Google上执行此操作时找到了此代码:

TextView myTv = new TextView(getActivity());
myTv.setText("No results");
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
param.addRule(RelativeLayout.CENTER_IN_PARENT, 0);
myTv.setLayoutParams(param);
myTv.setVisibility(View.GONE);
((RelativeLayout) mScheduleListView.getParent()).addView(myTv, 0);

mScheduleListView.setEmptyView(myTv);

上面包含ListView的片段的XML布局如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ScheduleFragment" >

    <ListView android:id="@+id/mScheduleListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="10dp"
        android:divider="@null"
        android:dividerHeight="10.0sp" />

</RelativeLayout>

布局显示,但不是居中。我不知道为什么它不起作用。我尝试弄乱LayoutParams并将其更改为MATCH_PARENT,但显然这不是问题。
如果是这样可能是什么问题以及如何解决它?

3 个答案:

答案 0 :(得分:2)

在中心设置Textview重力

帮助代码:

myTv.setGravity(Gravity.CENTER);

答案 1 :(得分:1)

 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"

在你的布局中写下这段代码..它可能有用......

答案 2 :(得分:0)

解决!
显然param.addRule(RelativeLayout.CENTER_IN_PARENT, -1)有效 感谢文档,我发现true的值为-1 我读到的有关视图居中的所有解决方案建议true实际为0(对于addRule方法)。