- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须制作一个图像在上面、文本在上面的布局。图片高度必须是根布局高度的 40%。文本具有可变高度。因此,整个事情必须放在 ScrollView 中。
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorTutorialGrey"
>
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:fillViewport="true"
>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintGuide_percent="0.4"/>
<ImageView
android:id="@+id/tutorial_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="@+id/guideline"
tools:src="@drawable/splash_bg"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="32dp"
app:layout_constraintTop_toBottomOf="@id/guideline"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
>
<TextView
android:id="@+id/tutorial_title"
style="@style/Tutorial.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Alle Neuerungen der App auf einen Blick"
/>
<TextView
android:id="@+id/tutorial_description"
style="@style/Tutorial.Description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet. no sea takimata sanctus est Lorem ipsum dolor sit amet."
/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
布局就像它所需要的那样,但是一旦我放入 Guideline,ScrollView 就不再滚动了。
我犯了什么错误,我怎样才能实现所需的布局和行为?
最佳答案
指南和 ImageView 必须具有与父级相同的 ConstraintLayout
。将指南移动到 ImageView 上方,您应该设置好了。
附带说明一下,您可能不需要最外层的 ConstraintLayout
。您也可以去掉嵌套的 LinearLayout
以获得更扁平的布局。
您设置的指南基于百分比。不幸的是,这个百分比似乎是 View 总可滚动高度的一小部分,而不仅仅是您在屏幕上看到的高度。
您希望图像占据 ScrollView 可见部分的 40%。我建议您将 XML 中的准则设置为固定大小(例如 app:layout_constraintGuide_begin="100dp"
)并更改代码中的准则位置,执行如下操作:
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scrollable);
final ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.layout);
layout.post(new Runnable() {
@Override
public void run() {
final ScrollView scrollView = (ScrollView) layout.findViewById(R.id.scrollView);
final Guideline guideline = (Guideline) findViewById(R.id.guideline);
final ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) guideline.getLayoutParams();
lp.guideBegin = (int) ((scrollView.getHeight()) * 0.4);
guideline.setLayoutParams(lp);
}
});
}
我建议使用 ConstraintSet#setGuidelineBegin
,但我无法让它发挥作用。你可能会有更好的运气。
关于android - ScrollView 不使用 ConstraintLayout 和指南滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608549/
我正在开发一个 Android 库,这个库有一些布局 Activity 。 在布局中,我有下一个代码 ... Make sure you have correct i
我想以编程方式将一个 ConstraintLayout 放入另一个 ConstraintLayout 中。但是,如果我按照之前使用 RelativeLayout 的方式对其进行膨胀,它不会显示。 这是
我在我的布局中使用 androidx.constraintlayout.widget.ConstraintLayout 并且它不显示链,我也不能拖动任何小部件。我只需键入要使用的约束。 这是 and
我注意到我可以注释掉 implementation 'androidx.constraintlayout:constraintlayout:2.0.4'尽管我在我的应用程序中使用了 Constrain
我尝试以编程方式添加 ConstraintLayout。它在工作,但 WRAP_CONTENT 不工作。布局始终为 MATCH_PARENT。 Android 开发者页面没有为 ConstraintL
使用 Android Studio 菜单选项 Refactor -> Refactor to Androidx...迁移到 Androidx 包后... 我收到以下错误: Error inflatin
我正在尝试学习 Android 开发,但问题是我的应用程序每次尝试运行时都会崩溃,并且在 logcat 中出现以下错误: 2019-06-30 16:17:18.198 5317-5317/? E/e
我刚刚通过 Android Studio 菜单选项 重构 -> 重构到 AndroidX 迁移到 androidx 我收到以下错误: android.view.InflateException: Bi
我遇到一个错误,ConstraintLayout 中存在空对象引用 Logcat E/UncaughtException: java.lang.NullPointerException: Attemp
如问题标题所示,我已经搜索了我的问题的答案,并找到了 Error inflating class androidx.constraintlayout.ConstraintLayout after mi
因此,我更新了我的 gradle 文件,我的应用开始崩溃并出现一些奇怪的错误。它开始莫名其妙地崩溃,而且我的 java 类中的抽屉导航代码也出现了错误,这是我以前没有遇到过的。 我已经尝试使用我的版本
当我尝试使用 XML 在覆盖中插入 Compose(在其他应用程序上绘制)时,我得到了这个异常: java.lang.IllegalStateException: ViewTreeLifecycleO
我正在尝试通过 CodingInFlow 在 YouTube 上关注 Android Studio 开发的播放列表。 我正在尝试关注此视频,但遇到了问题... https://www.youtube.
在android studio SDK工具中有两个ConstraintLayout选项,一个是ConstraintLayout for android,另一个是Solver for Constrain
我有一个非常令人沮丧的错误,我无法解释。我创建了一个 Android 应用程序,它使用 Androidx AppCompat 来使其与旧版本兼容。这是我的主要 Activity 布局文件:{Andro
免责声明:我知道 Compose 刚刚进入 alpha01,因此我不希望每个功能可用。但是,特定布局案例的布局和处理是恕我直言的一个重要主题应该尽早解决 😉。 当前基于 View Constrain
Attempt to invoke virtual method 'boolean androidx.constraintlayout.solver.widgets.ConstraintWidgetC
我正在尝试自己学习android开发,因为我试图使用按钮和 TextView 制作一个简单的文本更改应用程序,但是当使用USB在我自己的手机上运行它时,不幸的是,它开始显示该应用程序已经停止。如果您不
我遇到了一个奇怪的问题:layout.xml 我正在尝试将一个小部件连接到我的屏障。问题是,当我尝试将我的小部件的 END 与 barrier 连接时,没有
所以我有一个 RecycleView 的布局文件,它具有可展开/可折叠的 View 。 点击标题会展开/折叠额外的数据。在编辑器中一切看起来都很好。但是,它会有一个类似于 layout_marginB
我是一名优秀的程序员,十分优秀!