我正在使用一个配置面板的布局,其中包含一个包含两个子视图的LinearLayout(垂直):一个主要子视图,它是一个ScrollView(它里面有很多东西 - 不仅适合屏幕,所以我'我使用ScrollView来处理这个问题)以及配置面板中的某些内容发生变化时出现的面板(通常情况:保存按钮和恢复按钮)。问题是我无法说服ScrollView缩小以允许“保存/恢复”面板在屏幕上的任何空间。
以下是布局文件的摘录:[编辑:添加了ScrollView的内容]
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scrollView">
<TextView
style="?android:listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tweeterLK_options"
android:layout_marginTop="15sp"
android:id="@+id/textView5"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fgIntervalPrompt"
android:id="@+id/fgEnable"
android:checked="true"
android:paddingRight="5dp"/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fgInterval"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<CheckBox android:id="@+id/bgEnable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bgIntervalPrompt"
android:checked="true"
/>
<Spinner android:id="@+id/bgInterval"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/bgIntervalPrompt"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/tlkConfig_cacheDepth_prompt"
android:id="@+id/textView"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cacheDepth"
android:prompt="@string/tlkConfig_cacheDepth_prompt"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tlkConfig_preload_avatar"
android:id="@+id/preload_avatar"
android:checked="true"
android:layout_weight="1"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tlkConfig_preload_images"
android:id="@+id/preload_images"
android:checked="false"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/account"
style="?android:listSeparatorTextViewStyle"
android:layout_marginTop="15sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/signed_in_as"
android:id="@+id/signed_in_as"
android:visibility="visible"/>
<Button android:id="@+id/sign_in"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_in"
android:visibility="gone"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_out"
android:id="@+id/sign_out_button"
android:visibility="visible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lk_options_header"
style="?android:listSeparatorTextViewStyle"
android:layout_marginTop="14sp"
/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lkServer_enableLK"
android:id="@+id/lkServer_enable"
android:checked="false"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lkServer_selection">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lkServer_serverListLabel"
android:id="@+id/lkServerLabel"
android:layout_gravity="center_vertical"
android:layout_marginRight="3dp"/>
<Spinner android:id="@+id/lkServerSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/lkServerSpinnerPrompt"
android:longClickable="true"/>
</LinearLayout>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lkServer_inUse"
android:id="@+id/lkServer_useRecommendation"
android:checked="false"/>
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/settings_changed"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="1"
android:visibility="gone">
<Button android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="@string/save_settings"
/>
<Button android:id="@+id/revert"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="@string/reset_settings"
/>
</LinearLayout>
</LinearLayout>
当我@id/save
布局可见时(使用setVisibility(View.VISIBLE)
),它不会导致ScrollView调整大小。关于为什么会这样做以及我应该怎么做的任何想法?
我有两个选项:a)修复scrollview的大小,以便它总是为面板留出空间,或者b)摆脱面板,只需在按下后退按钮时弹出一个对话框。我更喜欢第二个,因为我已经有了这个工作。
答案 0 :(得分:-1)
scrollview中没有内容。请添加内容
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scrollView">
//Place your layouts and contents here for things to get scroll
</ScrollView>