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部分だけをスクロールできます。しかし、私はページ全体をスクロールしたいと思います。何かお勧めはありますか?