在我的应用程序中,我在scrollView中有一些微调器(每个都是片段的一部分)。此scrollView位于textView下方。
问题在于,当我在我的测试设备(三星Galaxy S6 Edge [G925F],API 23)上运行应用程序时,微调器的小箭头在textView上方保持可见,即使其余的微调器已经不可见了。
我做了很多研究,但找不到任何解决方案,所以我在这里问: 我需要做什么才能使箭头像旋转器的其他部分一样消失?
这里有一些图片:
在此图片中,您可以在我向下滚动之前看到活动顶部和微调器下方的textView
在此屏幕截图中,您可以看到问题。微调器的小三角形仍然可见,但旋转器本身已经滚出视野。
以下是包含微调器的片段的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<LinearLayout
android:id="@+id/fragLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/gradeDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp"
android:text="1"
android:textSize="30dp"/>
<Spinner
android:id="@+id/spinner"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:entries="@array/grades"/>
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginEnd="15dp"
android:layout_marginRight="15dp"
android:src="@drawable/ic_remove_black_24dp"
android:background="@null"/>
</LinearLayout>
<Space
android:layout_width="0dp"
android:layout_height="5dp"
android:layout_below="@id/fragLayout"/>
</RelativeLayout>
以下是MainActivitys内容的代码:
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="de.jeanma.android.avo.MainActivity"
tools:showIn="@layout/activity_main">
<Space
android:id="@+id/mainContentSpace"
android:layout_width="match_parent"
android:layout_height="16dp" />
<TextView
android:id="@+id/textView"
android:layout_below="@id/mainContentSpace"
android:layout_width="match_parent"
android:text="Standard text"
android:layout_height="wrap_content"
android:textSize="40dp"
android:gravity="end"/>
<ScrollView
android:id="@+id/scrollView"
android:layout_below="@id/textView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/divider"
android:showDividers="middle">
</LinearLayout>
</ScrollView>
</RelativeLayout>
通过Java方法将片段添加到LinearLayout(@ id / layout)。如果需要,我也会在这里发布。
我使用的是Java 1.8.05,目标SDK是23,最小值是14.代码是用Android Studio编写的
带有问题的textView是@id/textView
,在顶部显示大号。
答案 0 :(得分:5)
@jeanma你可以通过设置
解决问题android:background="#00FFFFFF"
用于ScrollView或ScrollView的根LinearLayout
答案 1 :(得分:0)
我现在有一个解决方法正在运行。正如我所设置的那样,textView的backgroundcolor与我的活动相同,不再显示的是箭头。但是这个空间确实表现得很差。在那里我改变了一些改变背景颜色的东西。所以我把它删除了。 (看起来还不错)。
可以在此处看到MainActivity'a内容的更新XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="de.jeanma.android.avo.MainActivity"
tools:showIn="@layout/activity_main">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:text="Standard text"
android:layout_height="wrap_content"
android:textSize="40dp"
android:gravity="end"
android:background="#FAFAFA"/>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView">
<LinearLayout
android:id="@+id/layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/divider"
android:showDividers="middle">
</LinearLayout>
</ScrollView>
</RelativeLayout>
但是因为箭头也显示出了填充,我改变了我的
src\main\res\values\dimens.xml
以下(我知道那是非常糟糕的做法):
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">0dp</dimen><!-- This was changed from 16dp to 0dp -->
<dimen name="fab_margin">16dp</dimen>
</resources>
感谢@ScriptKity @Wukash @Bryan的支持
答案 2 :(得分:0)
在父布局中设置背景颜色。
android:background="@color/white"