我遇到了一个奇怪的情况。我正在使用Slidingmenu,viewpager和CirclePageIndicator。目前,查看分页器和滑动菜单正在运行,但CirclePageIndicator未指示确切的页面。任何想法为什么? 以下是带有屏幕截图的活动代码。 我的代码 -
<?php
$server = "--------------";
$username = "--------------";
$password = "--------------";
$database = "--------------";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$id = $_Post["id"];
$date = ($_Post["date"]);
$baustelle = ($_Post["bau"]);
$sql = "INSERT INTO timesave.$id (datum, baustelle, anfang, ende, pause) VALUES ('$date' , '$baustelle', '', '', '')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
} else {
echo "Comment added";
}
mysql_close($con);
?>
当我运行代码时,如果我也刷到不同的页面,我发现circlepageindicator指示第一页。 这是短暂的。
通常应该是这样。
任何代码帮助都将受到赞赏。尊敬的选民请在投票前发表您的意见。请允许我纠正。谢谢你的合作。 问候 Biswajit
答案 0 :(得分:1)
你错过了documentation(我的重点)中的一个关键点:
(可选)如果您在视图寻呼机上使用OnPageChangeListener,则应在指标中设置它,而不是直接在寻呼机上设置。
我会更具体一点。当你打电话......
this.mIndicator.setViewPager(viewPager);
...指标将自己设置为给定OnPageChangeListener
的{{1}},有效地覆盖任何已设置的侦听器。这意味着您在指标之前设置的侦听器无用:
ViewPager
正如文档所述,您应该将侦听器设置为指示器(它基本上将代理事件)。所以将代码更改为:
this.viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
if (position == 0) {
menu.removeIgnoredView(viewPager);
} else {
menu.addIgnoredView(viewPager);
}
}
});
如果您使用最新版本的mIndicator.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { ... });
,则会发现其setOnPageChangeListener()
方法实际上已弃用,而不是addOnPageChangeListener()
。后者显然支持将多个侦听器附加到寻呼机。
我上次检查ViewPager
源代码时,ViewPager
和set
方法相互独立。因此,您也可以逃脱:
add
虽然这不是我的第一选择。