我在LinearLayout
中有某些小部件,它是ScrollView
的子级。问题在于,在这种情况下,第一个窗口小部件名为“标题1”的窗口小部件不可见,它超出了屏幕尺寸,如该图所示,
我尝试了以下操作,但仍未显示我的标题1。
在android:fillViewport="true"
中添加了属性ScrollView
,但是它不起作用。
添加了layout_gravity
(center_horizontal | center_vertical
)属性,但是该属性不起作用。
此问题特定于OP的设计Android ScrollView fillViewport not working,并没有太大帮助。
注意::我希望不使用任何边距/填充属性来显示小部件。
代码
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/view_pager"
android:fillViewport="true"
android:focusableInTouchMode="true"
app:layout_constraintBottom_toTopOf="@+id/tabLayout"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="10dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:text="Title 1"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 2"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 3"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 4"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 5"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 6"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 7"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 8"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 9"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 10"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 11"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 12"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 13"
/>
</LinearLayout>
</ScrollView>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
style="@style/tabLayoutStyle"
app:layout_constraintBottom_toBottomOf="parent"
/>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
编辑1
将LinearLayout(内部滚动视图)的高度从match_parent
更改为wrap_content
,但仍然无效。
答案 0 :(得分:2)
结果被添加到帖子中。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/view_pager"
android:fillViewport="true"
android:focusableInTouchMode="true"
app:layout_constraintBottom_toTopOf="@+id/tabLayout"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:text="Title 1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 3"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 4"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 5"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 6"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 7"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 8"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 9"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 10"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 11"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 12"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 13"/>
</LinearLayout>
</ScrollView>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_height="50dp"
android:background="@color/colorAccent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="match_parent"/>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
答案 1 :(得分:1)
删除TabLayout,然后将出现第一个TextView。问题是您使用的TabLayout错误
答案 2 :(得分:1)
除了Mohammad Asheri's answer之外,我还添加了以下属性,并且可以正常使用
在Mohammad Asheri's answer中,我添加了此属性app:layout_constraintTop_toTopOf="parent"
,该属性将ScrollView
与顶部对齐,并防止子View
超出设备高度,但又超过了设备高度发生问题时,底部的View
被tabLayout
隐藏了,因此我添加了此属性以更正此问题,将layout_height
更改为wrap_content
并添加了此{ {1}},此属性不超过结果尺寸,在这种情况下为app:layout_constrainedHeight=”true"
。这是从约束布局版本1.1起引用的ConstraintLayout 1.1.0 different from 1.0.2, is it a bug?
docs也能完美地描述它
tabLayout
答案 3 :(得分:0)
您的TabLayout
可能是第一个值不可见的原因。列表中的第一项可能在TabLayout
下,并且不可见。
不需要ConstrainLayout
。使LinearLayout
的方向垂直。您可以使用此示例
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
style="@style/tabLayoutStyle"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/view_pager"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="10dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:text="Title 1"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 2"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 3"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 4"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 5"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 6"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 7"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 8"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 9"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 10"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 11"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 12"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="center"
android:background="@color/green"
android:layout_marginTop="20dp"
android:text="Title 13"
/>
</LinearLayout>
</ScrollView>