我想在一个下面显示一个按钮ListView.问题是,如果ListView扩展(添加了项目......),按钮将被推出屏幕.
我尝试了一个LinearLayout带权重(如Android所示:为什么没有一个视图的maxHeight?),但要么我的权重错了,要么根本不起作用.
另外,我发现某处使用了一个提示RelativeLayout.在ListView随后将被与按钮上方设置android:layout_abovePARAM.
问题是我不知道如何在按钮后放置按钮.在我发现的示例中,使用下面的视图ListView进行了调整android:layout_alignParentBottom,但我不希望我的按钮粘在屏幕的底部.
除了使用setHeight方法和一些计算所需空间之外的任何想法?
编辑: 我得到了很多有用的答案.
bigstone的用户和用户639183的解决方案几乎完美无缺.但是,我不得不在按钮的底部添加额外的填充/边距,因为它仍然会被推出屏幕的一半(但随后停止)
如果您希望按钮固定在屏幕底部,Adinia对相对布局的回答很好.这不是我的意图,但仍可能对其他人有用.
AngeloS的解决方案是我最后选择的解决方案,因为它创造了我想要的效果.但是,我LinearLayout对按钮周围做了两处小改动:
首先,因为我不希望在我的布局任何绝对值,我换android:layout_height="45px"到wrap_content,其工作也很不错.
其次,因为我希望按钮水平居中,只有垂直支持LinearLayout,我将android:orientation ="horizontal"改为"vertical".
AngeloS在他的帖子中也说过,他不确定周围的android:layout_weight="0.1"参数是否有任何影响; 我刚试过,它确实做到了!没有,按钮再次被推出屏幕.LinearLayoutListView
在android中,如何创建一个具有最大高度的滚动视图,并包装内容,基本上它是垂直包装内容,但具有最大高度?
我试过了
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="200dp"
android:layout_alignParentBottom="true" >
<LinearLayout
android:id="@+id/maincontainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
但这不起作用?
我想设置RecylerView的Max Height.我可以使用下面的代码设置最大高度.下面的代码使高度为当前屏幕的60%.
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int a = (displaymetrics.heightPixels * 60) / 100;
recyclerview1.getLayoutParams().height = a;
Run Code Online (Sandbox Code Playgroud)
但现在的问题是,如果它没有项目,那么它的高度也是60%.所以我想在没有项目时将其高度设置为0.
我希望实现类似的东西.
if(recyclerview's height > maxHeight)
then set recyclerview's height to maxHeight
else dont change the height of recyclerview.
Run Code Online (Sandbox Code Playgroud)
我怎么设置它?请帮助我,我坚持下去
我在Android中的ScrollView中放置了一个TextView:
<ScrollView
android:layout_width = "fill_parent"
android:layout_height = "wrap_content">
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
使用此配置,scrollview将增长以包装textview-content. 我怎样才能实现scrollview只占用所需的空间(少数文本),但同时将大小限制为100dp(对于长文本)?
谢谢你的回答.对于具有相同问题的所有人,这里是可接受的解决方案:创建自定义ScrollView类,在xml文件中使用此类而不是ScrollView.然后覆盖onMeasure()方法:
public class ScrollMyVew extends ScrollView {
public static final int maxHeight = 100; // 100dp
// default constructors
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(dpToPx(getResources(),maxHeight), MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
private int dpToPx(Resources res, int dp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, res.getDisplayMetrics());
}
}
Run Code Online (Sandbox Code Playgroud)
此解决方案取自/sf/answers/1653227131/
我在尝试解决布局中具有静态高度可滚动区域的问题时遇到了很多麻烦.我有三个长列表需要在同一个屏幕上显示,顺序显示所有条目是完全不切实际的,因为如果你想跳过一个类别,你需要滚动过去可能有数百个条目.
假设我有一个内部带有线性布局的滚动视图,我希望这个占据屏幕上最大250dp的高度,并且一旦填充了多于250dp空间的条目,就可以独立滚动.
我现在拥有的是:
<ScrollView
android:minWidth="25px"
android:minHeight="150px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/XXXXXXX"
android:scrollbars="vertical">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/XXXXXX" />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
当填充时,只要滚动视图和线性布局需要适合内容并显示所有内容并且显示所有内容而不是具有250dp/px的"窗口"(任何测量将是好的)并且内容可在其中滚动,则只需拉伸.
我是android平台的新手,所以也许答案是显而易见的,我只是不懂语言,但任何帮助都将不胜感激!谢谢
---求助:将一个linearLayout放在ScrollView外面的高度.
这是我希望我的ScrollView看起来像:
layout_height="wrap_content"这是我目前拥有的:
<ScrollView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:measureAllChildren="true"
android:fillViewport="false"
>
Run Code Online (Sandbox Code Playgroud)
我认为measureAllChildren真的没有任何作用......
如果我添加android:layout_weight,大小将始终是我想要的最大值.没有它,它只会延伸超过应有的...
我不介意扩展ScrollView类来改变onMeasure的行为,如果我需要......?
PS:如果这有所不同,我试图让这个从Froyo开始工作.
我必须implementinga RecylerView,它应该包含内容,如果它只包含项目内容高度较少.如果项目的增加喜欢250dp,它应该设置为max heght(250dp)并且能够滚动.如何实现这个Relative layout.我的父布局是一个.
这是我的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
屏幕截图,如果它只有一个项目.这应该是wrap_content.
如何在组件 Android“ScrollView”中编辑高度滚动?
