jfeinstein10 / slidingmenu,带有CirclePageIndicator的viewpager无法正常工作

时间:2015-10-01 18:15:48

标签: android android-viewpager slidingmenu viewpagerindicator

我遇到了一个奇怪的情况。我正在使用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指示第一页。 这是短暂的。

screenshot_2015-09-29-14-17-56

通常应该是这样。

screenshot_2015-09-26-08-33-50 1

任何代码帮助都将受到赞赏。尊敬的选民请在投票前发表您的意见。请允许我纠正。谢谢你的合作。 问候 Biswajit

1 个答案:

答案 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源代码时,ViewPagerset方法相互独立。因此,您也可以逃脱:

add

虽然这不是我的第一选择。