我正在尝试创建一个具有一组相似屏幕的应用程序,因为它们将在顶部具有布局,而在底部将具有一组按钮。基本上会发生的事情是底部的一个按钮是一个微调器,每个被选中的选项都应该将一个布局膨胀到屏幕的上半部分,同时将所有按钮留在底部。
最好的解决方法是什么,而不必为屏幕底部的按钮重写xml部分。
从上图中,我需要底部的五个按钮对所有屏幕保持相同,而当从微调器中选择其中一个选项时,需要更改其上方的所有内容。
我的代码目前如下:它目前在底部放置按钮,红色框中的文本放在每个屏幕上。我需要做的是将个人布局扩展到两者之间的空间。 的setContentView(R.layout.people1);
if (v.getId() == R.id.service_user_button)
{
Spinner spinner = (Spinner) findViewById(R.id.people_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getBaseContext(), R.array.service_user_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
答案 0 :(得分:3)
您希望布局看起来像这样:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
<LinearLayout
android:id="@+id/theContent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</ScrollView>
<!-- Buttons go inside this -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
在运行时,您使用id“the Content”查找LinearLayout并将其子项分配给它。
答案 1 :(得分:0)
您还可以使用<include>
标记。检查Romain Guy的this解释。
答案 2 :(得分:0)
还有一种额外的(不是替代!)可能性。整个活动屏幕始终插入FrameLayout。因此,您可以使用根布局合并而不是根布局。带按钮的布局将具有较大的上边距,因此它们将放置在底部。其他布局将位于顶部,因为它们是。该理论被描述为here。
当然,常见的底部布局应该包含在内。