Android 布局设计:复合相对 vs 片段

Android layout design: composite Relative vs fragments

我想要一个简单的可滚动 ListView。我有一个自定义适配器,可以让每一行显示一张图片和一些文本。

下面我想要几个按钮。

我正在寻找像这张示例图片这样的布局:

这看起来应该是微不足道的。我有一个扩展 ListActivity:

的主 activity
public class ShufflerMain extends ListActivity {
    private ArrayList<ListEntry> init = new ArrayList<ListEntry>();
    private Button btnAddEntry;
    private Button btnShuffle;
    private Button btnClearAll;
    private InitiativeArrayAdapter initAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //initViews();
        loadDummyData();
        listAdapter = new MyCustomArrayAdapter(this, init);
        setListAdapter(initAdapter);
    }

这很好,很花哨,但我想在此列表下方放置几个按钮。 (执行诸如添加到列表、清除列表等操作)。我的主要 XML 看起来像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.myapp.ShufflerFragment" >

<ScrollView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ScrollView>

<Button
    android:id="@+id/clearAll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="@string/clearAll"/>

<Button
    android:id="@+id/add_new_entry"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/clearAll"
    android:text="@string/addEntry"/>

<Button
    android:id="@+id/shuffle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/add_new_entry"
    android:text="@string/shuffle"/>
</RelativeLayout>

我可以 运行 应用程序很好,但 Eclipse 中的图形布局预览看起来不错,我看到了我的 3 个按钮。当我 运行 它在我的 phone 上时,我所看到的只是我的 ListView 填充了我的虚拟数据。我在 Java 中添加了调用以下拉按钮并添加侦听器,并且 findViewById 在它们上返回 null。

我是不是完全错误地设置了这个项目?我是否需要将 Activity 作为我的 "Main" 与 ListView 分开,以便具有全屏列表以外的任何功能?

谢谢。

您的滚动视图是空的。如果你想让多个项目在其中滚动,例如在线性布局中放置一个视图组布局,然后在其中放置按钮。

您的视图很可能返回 null,因为您没有在 on create 方法中设置 contentview()。而不是扩展 listActivity 扩展正常 activity 并提供具有 listView

的布局