提出这个问题的最好方法是提供一个例子,所以这里是:
<ScrollView>
<LinearLayout
android:id="@+id/main"
android:orientation="vertical"
>
<TextView
android:id="@+id/some_text"
/>
<LinearLayout
android:id="@+id/stretch_me"
/>
<Button
android:id="@+id/i_can_toggle"
/>
<TextView
android:id="@+id/toggle_me"
android:visibility="gone"
/>
<Button
android:id="@+id/finished"
/>
</LinearLayout>
</ScrollView>
这似乎相当简单,但坚持......
1)我希望stretch_me布局占用屏幕上的所有剩余空间(我需要它的大小,以便我可以从代码中动态填充它)
2)我无法将main更改为RelativeLayout,因为我想使用i_can_toggle切换to gone和visible之间的toggle_me,但需要保持strech_me大小与之前相同
3)在将toggle_me更改为可见之前,必须没有滚动,并且已完成的按钮必须位于屏幕底部
现在我已经尝试了很多东西,最有希望的方法就是这个有一些编码的方法(我正在考虑从代码中设置stretch_me大小),但是我无法从onCreate()获得视图的大小。方法(screen_height - view_height =剩余空间)。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
将stretch_me设置为具有这些属性以占用空间
android:layout_height="fill_parent"
android:layout_weight="1"
答案 1 :(得分:0)
我想要stretch_me布局 占用所有剩余的空间 屏
将身高和体重参数设置为以下
android:layout_height="fill_parent"
android:layout_weight="1"
我需要它的大小
您可以使用onmeasure()来测量视图大小。 http://developer.android.com/reference/android/view/View.html#onMeasure(int,int)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int widthSpec = MeasureSpec.getMode(widthMeasureSpec);
int width = MeasureSpec.getSize(widthMeasureSpec);
//Similarly for height
}