gpt4 book ai didi

android - scrollTo 在带有 alpha 的 View 后面时不起作用

转载 作者:行者123 更新时间:2023-11-28 20:35:23 27 4
gpt4 key购买 nike

EditText 位于具有 alpha 背景的 LinearLayout 后面时,我无法使 scrollTo 工作。

我想避免使用 uiautomator,因为我认为它有时不起作用

<RelativeLayout ...>
<ScrollView>
<LinearLayout>
<EditText />
<EditText />
<EditText />
<EditText />
....
<EditText android:id="@+id/name" />
</LinearLayout>
</ScrollView>

<LinearLayout
android:id="@+id/button_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:layout_alignParentBottom="true"
android:background="@color/white80">

</RelativeLayout>
onView(withId(R.id.name)).perform(scrollTo(), typeText(name), closeSoftKeyboard());

它说找不到id名称。如果屏幕很大,它工作正常,但如果它很小,并且编辑文本名称位于具有 alpha 背景的 button_group 后面,它总是会失败。

最佳答案

也许您可以在执行滚动之前使用自定义 ViewAction 更改 button_group 可见性。

首先,您需要执行可见性更改的自定义 ViewAction:

private static ViewAction setViewVisibitity(final boolean value) {
return new ViewAction() {
@Override
public Matcher<View> getConstraints() {
return null;
}

@Override
public String getDescription() {
return "Show / Hide View";
}

@Override
public void perform(UiController uiController, View view) {
view.setVisibility(value ? View.VISIBLE : View.GONE);
}
};
}

然后:

onView(withId(R.id.button_group)).perform(setViewVisibitity(false));

onView(withId(R.id.name)).perform(scrollTo(), typeText(name), closeSoftKeyboard());

稍后您可以随时恢复 button_group 可见性:

onView(withId(R.id.button_group)).perform(setViewVisibitity(true));

试一试。由于 button_group 的可见性设置为 GONE,因此它不应干扰滚动。

关于android - scrollTo 在带有 alpha 的 View 后面时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com