1

如何格式化 Android 中列表为空时显示的文本ListView

<ListView
    android:id="@+id/android:list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:cacheColorHint="@android:color/transparent"
    android:dividerHeight="1dip" />

<TextView
    android:id="@+id/android:empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/test_list"
    android:textColor="@color/white"
    android:textSize="25sp"
     />

我想将字体设置为资产中的字体..

mTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/myFont.ttf");
mEmptyTextView = (TextView)findViewById(**????**)    
mEmptyTextView.setTypeface(mTypeFace);
4

2 回答 2

2

您将需要android.R.id.empty用于初始化mEmptyTextView. 试试看:

mTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/myFont.ttf");
mEmptyTextView = (TextView)findViewById(android.R.id.empty);
mEmptyTextView.setTypeface(mTypeFace);
于 2013-04-12T19:13:18.263 回答
0
<TextView
    android:id="@+id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/test_list"
    android:textColor="@color/white"
    android:textSize="25sp"/>

然后你可以通过 id 找到这个视图(不要使用android:前缀):

import <your.package>.R;
...
mEmptyTextView = (TextView)findViewById(R.id.empty);

ListView 也有一个特殊的方法来设置空视图:

ListView#setEmptyView

http://developer.android.com/reference/android/widget/AdapterView.html#setEmptyView(android.view.View)

顺便说一句,您需要以某种方式隐藏空的 TextView (无需调用) #setVisible(View.GONE)TextView方法是将其放入某种容器中并隐藏一个容器 - 但这是一种不好的方法。

TextView所以要么从不同的布局膨胀,要么在运行时创建他。

于 2013-04-12T19:22:28.540 回答