gpt4 book ai didi

android - View Pager 在 android 中的嵌套 ScrollView 中不起作用

转载 作者:行者123 更新时间:2023-11-30 00:29:23 26 4
gpt4 key购买 nike

大家好,我是 Android 开发的新手,我被困在这个点上,我的 View 寻呼机没有按预期工作。我想要实现的是向上滚动的选项卡布局以及折叠的工具栏布局。多谢 :)如果没有嵌套 ScrollView ,问题是折叠工具栏不会折叠。这是代码:

<?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:layout_width="match_parent"
android:layout_height="match_parent"
>

<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:theme="@style/AppTheme.AppBarOverlay">

<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="@android:color/black"
app:layout_scrollFlags="scroll|exitUntilCollapsed">

<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/bottom_nav_home_icon"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.1" />
</android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.design.widget.TabLayout
android:id="@+id/temp_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:theme="@style/TabLayoutTheme" />
<android.support.v4.view.ViewPager
android:id="@+id/temp_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>


</android.support.design.widget.CoordinatorLayout>

这对于 View 寻呼机来说效果很好,但折叠工具栏没有折叠。当我试图将它保留在嵌套 ScrollView 中时,折叠工具栏布局正在折叠但 View 寻呼机不起作用。它没有滑动标签。

查看分页器的java代码是

import android.support.design.widget.AppBarLayout;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;



public class Tabs extends AppCompatActivity {

TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service_history_tabs);
tabLayout=(TabLayout)findViewById(R.id.temp_tab);
viewPager=(ViewPager)findViewById(R.id.temp_view_pager);
tabLayout.setupWithViewPager(viewPager);
viewPager.setAdapter(new PageAdapter(getSupportFragmentManager()));
}
class PageAdapter extends FragmentPagerAdapter{

public PageAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
return new TabFragment1();
}

@Override
public int getCount() {
return 3;
}

@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 0:return "A";
default:return "B";
}
}
}
}

最佳答案

尝试将您的 LinearLayout 放在 NestedScrollView 中,

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/nsv">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TabLayout
android:id="@+id/temp_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<android.support.v4.view.ViewPager
android:id="@+id/temp_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>

</android.support.v4.widget.NestedScrollView>

并为 NestedScrollView 设置 android:fillViewport 为 true。

NestedScrollView nestedScrollView = (NestedScrollView) findViewById (R.id.nsv);
nestedScrollView.setFillViewport (true);

关于android - View Pager 在 android 中的嵌套 ScrollView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736261/

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