- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我用过viewpager
,当页面改变时,标题会根据位置改变。
这是我在 onCreate()
中的代码
setContentView(R.layout.activity_single_news);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final ActionBar actionBar=getSupportActionBar();
if(actionBar!=null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
}
ViewPager pager=findViewById(R.id.viewpager);
final ImageView actionbarImageview=findViewById(R.id.actionbar_news_image);
pager.setAdapter(new SingleNewsPagerAdapter(getSupportFragmentManager(), newslist));
int position=getIntent().getIntExtra("position", 0);
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
final NHBean news = newslist.get(position);
if (actionBar != null) {
actionBar.setTitle(news.getHeadline());
} else
Log.d("status", "actionbar is null");
new SetImageFromURL(actionbarImageview).execute(news.getImageUrl());
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
pager.setCurrentItem(position);
}
和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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="xyz.NewsActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/actionbar_news_image"
app:layout_collapseMode="parallax"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/facebookshare"
/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpager" />
</android.support.design.widget.CoordinatorLayout>
这是我的 res/values/styles.xml
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="AppTheme.ActionBar.Transparent" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@android:color/transparent</item>
<item name="colorPrimaryDark">@android:color/black</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources
最初,标题是
<string name="title_activity_news">News</string>
当我启动 Activity 时,它被更改为 pager.setCurrentItem(position);
--> 这个项目的标题。当页面改变时,imageview
图像完美改变。但标题没有改变。
actionbar
不为空。
谁能帮帮我?我尝试了所有与 actionbar.setTitle() 相关的帖子。不幸的是,我没有得到解决方案
最佳答案
解决方案 1:您的代码是正确的。只需将此行添加到 collapsingToolbar 中的 app:titleEnabled="false"
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:titleEnabled="false"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
解决方案 2:
final CollapsingToolbarLayout collapsingToolbarLayout = findViewById(R.id.toolbar_layout);
并在您的 onPageSelected 中执行此操作:
if (collapsingToolbarLayout != null) {
collapsingToolbarLayout.setTitle(news.getHeadline());
}
关于android - Actionbar setTitle() 在 OnPageChangeListener() 中只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829887/
我有 3 个选项卡,我使用 fragment 实现了这些选项卡。假设我每次滑动到 Tab2 时,我都希望执行相同的代码,即我希望每次都重新加载 Tab2 内容。这背后的原因是,在 Tab1 中,用户有
是否可以在 ViewPager 的 OnPageChangeListener 的方法 onPageScrolled 中知道滚动的方向? 最佳答案 我用过这样的东西: mPager.setOnPageC
我的应用程序使用连接的蓝牙设备向其发送事件,因此当我从 BLE 设备接收到事件时,我必须执行某些操作。此外,我还创建了一个实现 OnPageChangeListener 的内部类,并且我还使用一个用于
我正在使用下面的代码。但当您旋转屏幕或重新运行应用程序时它会起作用。 pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeLis
根据 this接受的答案,我能够得到我的 tabLyout 如下: 我现在需要的是能够根据 fragment 位置更改按钮文本,例如,如果位置为零,则不应出现 Back,如果位置为最后,Next 应该
我正在使用自定义 ViewPager,当我滑动到新页面时,ViewPager.OnPageChangeListener 不起作用。可能是什么原因? mPager = (WrapContentHeigh
关于 Android 中的淡入淡出的问题有很多,但它们都包括动画。我的问题是关于使用 ViewPager 的 OnPageChangeListener 进行淡入淡出。 我有一个 ViewPager,它
我试图禁止我的 ViewPager 在选项卡之间滚动。我有以下情况: public class MyClass extends ViewPager implements ViewPag
我有一项 Activity 正在加载 6 个 fragment 。三个 fragment 中的六个具有搜索 View ,其余三个 fragment 未实现搜索 View 。 我制作了两个menu.xm
我正在尝试同步两个 ViewPager,因为在我之前显然有很多人,我已经做到了这一点: private ViewPager mNavPager; private ViewPager mMainPage
我在这里看到了一些类似的帖子,但没有合适的答案。 我使用事件 onpageselected in a viewpager 来执行一个函数。此功能依赖于网络,因此可能需要一些时间。但是幻灯片动画看起来很
我用过viewpager,当页面改变时,标题会根据位置改变。 这是我在 onCreate() 中的代码 setContentView(R.layout.activity_single_news
我有一个带有标签的 ViewPager + ActionBar。当我“滑动”到另一个选项卡时,我想隐藏软键盘,但我不知道如何。 我已将我的 Activity 传递给 FragmentPageAdapt
我是 kotlin 的新手,如何在 ViewPager 中添加 OnPageChangeListener。 viewPager?.addOnPageChangeListener // Now how
我在 MainActivity 中将 circlePageIndicator 与我的 Viewpager 一起使用。 circlePagerIndicator.setViewPager(mPager)
我收到一条错误消息:构造函数 Intent(new ViewPager.OnPageChangeListener(){}, Class) 未定义 上线:Intent Intent = new Inte
我是一名优秀的程序员,十分优秀!