我正在创建仅包含textview的自定义列表视图。
(我不喜欢设置custom_textview.xml的根LinearLayout的高度意味着修复高度)
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="5dp"
android:divider="@drawable/divider"
android:dividerHeight="2dip"
android:listSelector="@drawable/my_list_selector" >
</ListView>
<!-- <ListView -->
<!-- android:id="@+id/lv_diseases" -->
<!-- android:layout_width="match_parent" -->
<!-- android:layout_height="match_parent" -->
<!-- android:layout_alignParentLeft="true" -->
<!-- android:layout_marginTop="5dp" -->
<!-- android:layout_below="@+id/imageView1" > -->
<!-- </ListView> -->
<TextView
android:id="@+id/emptyText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="232dp"
android:gravity="center"
android:text="Empty List"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="gone" />
</RelativeLayout>
这是listview_Adpter中的getview方法 @
Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater();
if (convertView == null) {
view = new ViewHolder();
convertView = inflator.inflate(R.layout.custom_textview, null);
view.txtViewTitle = (TextView) convertView
.findViewById(R.id.list_content);
view.txtViewTitle.setTextColor(Color.WHITE);
view.txtViewTitle.setTypeface(Typeface.createFromAsset(parent
.getContext().getAssets(), "fonts/DroidSerif.ttf"));
convertView.setTag(view);
}
else {
view = (ViewHolder) convertView.getTag();
}
System.gc();
try {
view.txtViewTitle.setText(listCountry.get(position));
} catch (Exception e) {
System.out.println("this is error " + e.getMessage());
}
return convertView;
}
这是我的textview里面的custom_textview.xml是
<?xml version="1.0" encoding="utf-8"?>
<!-- Definig a container for you List Item-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Defining where should text be placed. You set you text color here-->
<TextView
android:id="@+id/list_content"
android:textColor="#000000"
android:gravity="left"
android:text="sample"
android:paddingTop="10dp"
android:layout_margin="4dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="7dp"
/>
</LinearLayout>
这就是我实施的方式
listview_Adpter la = new listview_Adpter(getActivity(), listname);
lv.setAdapter(la);
每件事情都运作正常但列出视图显示数据的高度如何克服它?我想在中间显示它
答案 0 :(得分:2)
android:layout_marginTop =&#34; 232dp&#34; ??你真的需要那个...我认为这是造成身高问题的原因。
答案 1 :(得分:1)
您可以设置custom_textview android:layout_height来自&#34; fill_parent&#34;到&#34; match_parent&#34;
答案 2 :(得分:1)
您只需删除custom_textview.xml中的LinearLayout即可 根本不需要它。
您可能需要将xmlns:android="http://schemas.android.com/apk/res/android"
添加到TextView,并将其重力更改为android:gravity="left | center_vertical"
<强> [编辑] 强>
您的最终行项目布局(custom_textview.xml):
<?xml version="1.0" encoding="utf-8"?>
<!-- Defining a List Item-->
<!-- Defining where should text be placed. You set you text color here-->
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_content"
android:textColor="#f000"
android:gravity="left|center_vertical"
android:text="sample"
android:paddingTop="10dp"
android:layout_margin="4dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="7dp"
/>
[编辑2]
有关自定义行的更多提示:
你甚至可以进一步具体,给项目一个装饰(9个补丁添加边框或背景颜色,对于偶数和奇数项目也可能不同。)
您还可以向行添加自定义边距和/或填充
你甚至可以添加一个嵌入式(复合)drawable
文本可以有插入或凸起的方面(使用文本颜色及其阴影)。
所有这些只需一个TextView !!
答案 3 :(得分:0)
将以下布局用作custom_textview.xml
...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical" >
<TextView
android:id="@+id/list_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:padding="7dp"
android:text="sample"
android:textColor="#000000" />
</LinearLayout>
您的ListView
项目的高度看起来更大,因为您正在顶部17dp padding
和4dp margin
以及7dp padding
和4dp margin
处应用Textview
和32dp
TextView
的底部...所以,它除了{{1}}之外还占用了{{1}}个额外空间。将它们最小化为上述布局......我认为,您的问题将得到解决。