ScrollView 在选项卡式活动中无法正常工作
Posted
技术标签:
【中文标题】ScrollView 在选项卡式活动中无法正常工作【英文标题】:ScrollView not working properly with tabbed activity 【发布时间】:2016-03-25 01:40:12 【问题描述】:我正在创建一个带有标签和视图寻呼机的活动。我使用 android studio 提供的默认选项卡式活动模板来创建它。我的问题是我无法将滚动添加到视图寻呼机中添加的片段布局。 我从这个链接阅读Add ScrollView to Tab Activity
并删除了这个
app:layout_behavior="@string/appbar_scrolling_view_behavior"
.
但是当我将这一行添加到滚动视图时,我的选项卡和操作栏也不见了。我已经在滚动视图中添加了我的片段,但它不起作用。
这是我的主要和片段 xml
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:id="@+id/main_content"
android:layout_
android:layout_
android:fitsSystemWindows="true"
tools:context="com.webninjaz.kirti.dnschanger.activities.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_
android:layout_
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
android:background="#5A595B"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
<TextView
android:layout_
android:layout_
android:text="DNS CHANGER"
android:layout_gravity="center"
android:id="@+id/toolbar_title"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#ffffff"/>
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_
android:layout_
android:background="#727272"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
片段 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="#ccc"
android:focusableInTouchMode="true">
<ScrollView
android:layout_
android:layout_>
<LinearLayout
android:layout_
android:orientation="vertical"
android:layout_>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:id="@+id/TopHeader"
android:text="Current WIFI Info"
android:paddingRight="15dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginTop="20dp"/>
<LinearLayout
android:layout_
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:layout_
android:baselineAligned="false">
<LinearLayout
android:layout_
android:layout_weight=".50"
android:paddingRight="5dp"
android:orientation="vertical"
android:layout_>
<TextView
android:layout_
android:layout_
android:gravity="right"
android:textAlignment="gravity"
android:id="@+id/WiFiConnectLeft"
android:text="Wifi Name :"/>
<TextView
android:layout_
android:layout_
android:gravity="right"
android:textAlignment="gravity"
android:id="@+id/DefaultGatewayLeft"
android:text="Default Gateway :"/>
<TextView
android:layout_
android:layout_
android:gravity="right"
android:textAlignment="gravity"
android:id="@+id/DNS1Left"
android:text="Primary DNS :"/>
<TextView
android:layout_
android:layout_
android:gravity="right"
android:textAlignment="gravity"
android:id="@+id/DNS2Left"
android:text="Secondary DNS :"/>
<TextView
android:layout_
android:layout_
android:gravity="right"
android:textAlignment="gravity"
android:id="@+id/CurrentIPLeft"
android:text="IP Address :"/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_weight=".50"
android:paddingLeft="5dp"
android:orientation="vertical"
android:layout_>
<TextView
android:layout_
android:layout_
android:gravity="left"
android:id="@+id/WiFiConnectedText"
android:textAlignment="gravity"
android:text=""/>
<TextView
android:layout_
android:layout_
android:id="@+id/DefaultGatewayText"/>
<TextView
android:layout_
android:layout_
android:id="@+id/DNS1Text"/>
<TextView
android:layout_
android:layout_
android:id="@+id/DNS2Text"/>
<TextView
android:layout_
android:layout_
android:id="@+id/CurrentIPText"/>
</LinearLayout>
</LinearLayout>
<TextView
android:layout_
android:layout_
android:text="CHANGE DNS"
android:layout_gravity="center"
android:textAlignment="gravity"
android:id="@+id/MiddleHeaderText"
android:layout_marginTop="20dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:textColor="#000"
android:textSize="20sp"/>
<LinearLayout
android:layout_
android:layout_
android:layout_below="@+id/tv_title"
android:orientation="horizontal"
android:weightSum="3"
android:layout_marginTop="50dp"
android:id="@+id/lin_primary"
android:gravity="center_vertical"
android:paddingRight="15dp">
<TextView
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/primary"
android:textStyle="bold"
android:textColor="#000"
android:id="@+id/PrimaryDNSText"
android:gravity="center"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:textSize="13sp"/>
<EditText
android:layout_
android:layout_
android:layout_weight="1.2"
android:background="#000"
android:textColor="#ffffff"
android:inputType="numberDecimal"
android:layout_marginRight="10dp"
android:maxLength="16"
android:id="@+id/EDITDNS1"
android:gravity="center"
android:text=""/>
<Button
android:layout_
android:layout_
android:layout_weight="0.8"
android:text="BROWSE"
android:gravity="center"
android:background="@drawable/textview_click"
android:textColor="#ffffff"
android:id="@+id/BrowseDNS1"/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:layout_below="@+id/lin_primary"
android:orientation="horizontal"
android:weightSum="3"
android:layout_marginTop="30dp"
android:id="@+id/lin_secondary"
android:gravity="center_vertical"
android:paddingRight="15dp">
<TextView
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/secondary"
android:textColor="#000"
android:id="@+id/SecondaryDNSText"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:textSize="12sp"
android:gravity="center"/>
<EditText
android:layout_
android:layout_
android:layout_weight="1.2"
android:background="#000"
android:textColor="#ffffff"
android:inputType="numberDecimal"
android:layout_marginRight="10dp"
android:maxLength="16"
android:id="@+id/EDITDNS2"
android:gravity="center"
android:text=""
/>
<Button
android:layout_
android:layout_
android:layout_weight="0.8"
android:text="BROWSE"
android:gravity="center"
android:background="@drawable/textview_click"
android:textColor="#ffffff"
android:id="@+id/BrowseDNS2"/>
</LinearLayout>
<LinearLayout
android:layout_
android:gravity="center"
android:layout_marginTop="15dp"
android:layout_>
<Button
android:layout_
android:layout_
android:id="@+id/UpdateDNS"
android:text="Update"
android:background="@drawable/textview_click"
android:textColor="#ffffff"/>
<Button
android:layout_
android:layout_
android:id="@+id/ResetWifi"
android:text="RESET"
android:background="@drawable/textview_click"
android:textColor="#ffffff"
android:layout_marginLeft="20dp"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
【问题讨论】:
【参考方案1】:我认为你必须在滚动视图中添加它并从视图寻呼机中删除。 滚动视图可能是这样的。
<ScrollView
android:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior">
【讨论】:
这也会删除标签和标题栏 你能告诉我你用什么设备进行测试,因为我在 5.1 版本的 5.5 屏幕尺寸上运行并且它运行良好。 索尼 xperia kitkat 4.4.4【参考方案2】:我不得不将它添加到线性布局中:
android:paddingBottom="100dp"
似乎 Viewpager/container 视图设置为大于某处的设备屏幕。
【讨论】:
以上是关于ScrollView 在选项卡式活动中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
在选项卡式活动中使用 RecyclerView 的 OnScreenRotation