【问题标题】:update Views in layout when a view changes视图更改时更新布局中的视图
【发布时间】:2015-03-06 13:48:11
【问题描述】:

我有一个带有 2 个视图的 LinearLayout。当我在运行时移动上视图时,第二个视图没有相应移动,我似乎找不到解决方案。谁能帮忙?

这是我现在使用的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="test.itayrabin.toolbar2.TestActivity" android:orientation="vertical">

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="101dp"
    android:onClick="translate"
    android:layout_gravity="center_horizontal" />

<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/lipsum"
    android:onClick="back"/>

它只是一个带有按钮和 textView 的 LinearLayout。我将按钮的 onClick 设置为降低它的方法,而 textView 的 onClick 只是一种将所有内容恢复到原始状态的方法。

这里是翻译方法:

public void translate(View view) {
    translationY +=10;
    button.setTranslationY(translationY);
}

我尝试将根布局设为相对布局,但没有帮助。

我尝试设置 textView 的填充

我尝试将 textView 的顶部设置为 Button 的底部。

这些都不起作用。 有谁知道我该如何解决它?

【问题讨论】:

    标签: android android-layout android-linearlayout android-view


    【解决方案1】:

    translationX/Y/、rotationX/Y 等 ViewProperties 不会影响视图层次结构的布局。

    如果您希望翻译两个视图,则还必须翻译第二个视图。

    或者您可以在第一个视图的顶部添加一些边距,这会将两个视图向下推。

    【讨论】:

    • 如果我在布局中有一个布局并且内部布局中的一个视图改变了它的大小,我该如何更新内部布局的大小? @pdegand59
    • 在父布局上有一个 requestLayout
    猜你喜欢
    • 2018-03-16
    • 2023-03-26
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多