I'm having a scrolling issue with a ListActivity. Here is the layout:
<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>
And here is my 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);
}
});
}
}
As you can see, I want all the contents of the page except the header to be scrollable. I have successfully done this in non-ListActivities. However, in this layout, it doesn't allow me to scroll the page at all.
I am updating the list onResume because the data can be updated in sub-activities; regardless, moving that to onCreate doesn't seem to make a difference.
When I开发者_Go百科 remove theScrollView
, it allows me to scroll just the ListView portion of the layout. But I want to scroll the whole page. Any recommendations?The ListView isn't meant to be inside a ScrollView. See the answer to how can i automatically size listview so it doesn't scroll. I am dynamically adding children to an empty LinearLayout in the layout instead.
精彩评论