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
的布局
我想要一个简单的可滚动 ListView。我有一个自定义适配器,可以让每一行显示一张图片和一些文本。
下面我想要几个按钮。
我正在寻找像这张示例图片这样的布局:
这看起来应该是微不足道的。我有一个扩展 ListActivity:
的主 activitypublic 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
的布局