У меня проблема с прокруткой в 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);
}
});
}
}
Как видите, я хочу, чтобы все содержимое страницы, кроме заголовка, можно было прокручивать.Я успешно сделал это в не ListActivities.Тем не менее, в этом макете, это не позволяет мне прокручивать страницу вообще.
Я обновляю список на Resume, потому что данные могут обновляться в подзадачах;несмотря на это, перемещение в onCreate, похоже, не имеет значения.
Когда я удаляю ScrollView
, это позволяет мне прокручивать только часть ListView макета.Но я хочу прокрутить всю страницу.Любые рекомендации?