我通过 Java 将列表视图添加到 @+id/View01 中。由于某种原因,列表视图中的项目不接受点击。有人对可能的原因有想法吗?
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="fill_parent"
android:background="@color/light_blue"
>
<Button android:text="@+id/Button01"
android:id="@+id/Button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<AbsoluteLayout
android:id="@+id/Layout01"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_below="@+id/Button01"
android:layout_above="@+id/Button02"
android:layout_height="fill_parent">
<View android:id="@+id/View01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
/>
<ListView android:id="@+id/ListView02"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"/>
</AbsoluteLayout>
<Button android:text="@+id/Button02"
android:id="@+id/Button02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</RelativeLayout>
如果我将我的代码更改为以下点击工作,但布局看起来不像我想要的那样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="fill_parent"
android:background="@color/light_blue"
>
<Button android:text="@+id/Button01"
android:id="@+id/Button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<View android:id="@+id/View01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/Button01"
android:gravity="center_horizontal"
/>
<ListView android:id="@+id/ListView02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/View01"
android:gravity="center_horizontal"
android:layout_above="@+id/Button02"/>
<Button android:text="@+id/Button02"
android:id="@+id/Button02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</RelativeLayout>
涉及的功能之一:
protected void initiateExtraView(FillInput fillInput){
View extraView = fillInput.getExtraView();
ViewGroup parent = (ViewGroup) extraView.getParent();
int index = parent.indexOfChild(extraView);
parent.removeView(extraView);
extraView = fillInput.getLayoutInflater().inflate(
R.layout.extrabuttonlistview,
parent,
false);
parent.addView(extraView, index);
fillInput.setExtraView(extraView);
ListView extraButtonView = (ListView) extraView;
fillInput.setExtraButtonListView(extraButtonView);
ListAdapter adapter = new ExtraButtonAdapter(fillInput, this);
fillInput.getExtraButtonListView().setAdapter(adapter);
}
ExtraButtonAdapter 中创建不接受点击的特定视图的函数:
private View getNewForm(int position, View convertView,
ViewGroup parent) {
View view = mInflater.inflate(
R.layout.new_form_button,
parent,
false);
View.OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
Log.i(TAG, "Click on NewForm");
}
};
view.setOnClickListener(listener);
setNewFormView(view);
return view;
}
R.layout.extrabuttonlistview:
<?xml version="1.0" encoding="UTF-8"?>
<ListView android:id="@+id/ListView01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center_horizontal"
android:layout_above="@+id/Button02"/>