我有一个自定义列表视图,但是当我点击一个项目时我遇到了一个奇怪的问题:它只在我单击文本本身时响应,它不能在整个“矩形”上工作
这是我的listelement.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="20dip"
/>
这是java代码:
public class TabFragment5 extends ListFragment {
/** (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
String[] month ={
"January ",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListAdapter myListAdapter = new ArrayAdapter<String>(
getActivity(),
R.layout.listelement,
month);
setListAdapter(myListAdapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_frag5_layout, container, false);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(
getActivity(),
getListView().getItemAtPosition(position).toString(),
Toast.LENGTH_LONG).show();
}
}
没关系这个愚蠢的程序,我现在只是在运行一个教程。有关如何使其在整个列表项矩形上工作的任何提示?感谢
答案 0 :(得分:1)
在那里添加一个填充父级的视图,因为列表对象中唯一的对象是TextView,它是唯一可以按下的东西,尝试这样的事情:
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="15dip"
android:textSize="25sp"/>
</LinearLayout>
答案 1 :(得分:1)
ListFragment中已经有一个ListView,因此您可能不需要从onCreateView中扩展布局,除非您在其中创建一个包含ListView的自定义布局。我想你的问题在于tab_frag5_layout的布局。无论你在ListView中包装什么,都可能缩小ListView的宽度。
将onCreate和onCreateView合并到onActivityCreated实现中,对我有用。
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ListAdapter myListAdapter = new ArrayAdapter<String>(
getActivity(),
R.layout.listelement,
month);
setListAdapter(myListAdapter);
}