我遇到了 ListActivity 的滚动问题。这是布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/DefaultBackground"
android:orientation="vertical">
<include layout="@layout/default_header" />
<ScrollView android:layout_height="fill_parent" android:layout_width="fill_parent"
android:fillViewport="true">
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout style="@style/RoundedCornerContainer" android:orientation="vertical">
<TextView android:text="@string/is_anyone_injured" style="@style/DefaultText.RoundedContainerImmediateChild" />
<Button android:id="@+id/accident_help_call_911_btn" android:text="@string/call_911"
style="@style/BaseButton.Large" />
<View style="@style/LandingPageChoiceDivider" />
<TextView android:text="@string/review_accident_checklist" style="@style/DefaultText.RoundedContainerImmediateChild" />
<Button android:id="@+id/accident_help_checklist_btn" android:text="@string/checklist"
style="@style/BaseButton.Large" />
<View style="@style/LandingPageChoiceDivider" />
<TextView android:text="@string/collect_accident_info" style="@style/DefaultText.RoundedContainerImmediateChild" />
<Button android:id="@+id/accident_help_add_accident_btn" android:text="@string/add_new_accident"
style="@style/BaseButton.Large" />
</LinearLayout>
<LinearLayout style="@style/RoundedCornerContainer" android:orientation="vertical">
<TextView android:text="@string/previous_accidents" style="@style/LabelValueTitle" />
<View style="@style/LandingPageChoiceDivider" />
<ListView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:drawSelectorOnTop="false" />
<TextView android:id="@id/android:empty" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="@string/no_previous_claims_found" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
这是我的 ListActivity:
public class AccidentHelp extends BaseListActivity {
private static final String TAG = "AccidentHelp";
private PreviousClaimAdapter previousClaimsAdapter;
private List<AccidentInfo> previousClaimList = new ArrayList<AccidentInfo>();
@Override
public void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "onCreate called");
super.onCreate(savedInstanceState);
setContentView(R.layout.accident_help);
// code for setting up button OnClickListeners here.
}
@Override
public void onResume() {
super.onResume();
setupPreviousClaimsAdapter();
}
private void setupPreviousClaimsAdapter() {
AccidentInfoDB db = new AccidentInfoDB(getApplicationContext());
previousClaimList = db.read(currentUser.getUserName());
//there were no previous accidents.
if (previousClaimList == null) {
return;
}
previousClaimsAdapter = new PreviousClaimAdapter(this, R.layout.previous_claim_row, previousClaimList);
setListAdapter(previousClaimsAdapter);
getListView().setSelector(R.drawable.landing_choice_selector);
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.v(TAG, "previous claim selected.");
AccidentInfo accidentInfo = (AccidentInfo)getListAdapter().getItem(position);
Intent intent = new Intent(AccidentHelp.this, ClaimLandingPage.class);
intent.putExtra(ClaimLandingPage.CLAIM_LANDING_PAGE_ACCIDENT_INFO_EXTRA_NAME, accidentInfo);
startActivity(intent);
}
});
}
}
如您所见,我希望页面的所有内容(标题除外)都是可滚动的。我已经在非 ListActivity 中成功地做到了这一点。但是,在这种布局中,它根本不允许我滚动页面。
我正在更新 onResume 列表,因为数据可以在子活动中更新;无论如何,将其移至 onCreate 似乎并没有什么不同。
当我删除 时ScrollView
,它允许我只滚动布局的 ListView 部分。但我想滚动整个页面。有什么建议吗?