小编San*_*Gil的帖子

如何在viewpager的特定选项卡中显示当前片段?

我想得到最后一个片段在backstack中,或者当前显示它对我来说是相同的tab b_1.正如您在下图中看到的那样,我有一个ViewPager,另一个是内部的tab b.因此,显示了四个当前片段.

问题:如何获取Fragment 2实例?

我见过另一种解决方案,但没有一种适用于这种情况.

注释: ViewPager中托管的片段不是必需的.我可以在一个标签中打开另外两个片段.

脚本

使用这种方法,我得到所有当前可见的片段,但不是我想要的特定片段.

public ArrayList<Fragment> getVisibleFragment() {
    List<Fragment> fragments = getSupportFragmentManager().getFragments();
    ArrayList<Fragment> visibleFragments = new ArrayList<>();
    if (fragments != null) {
        for (Fragment fragment : fragments) {
            if (fragment != null && fragment.isVisible())
                visibleFragments.add(fragment);
        }
    }
    return visibleFragments;
}
Run Code Online (Sandbox Code Playgroud)

一些有趣的代码

activity_main.xml中

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="fixed"
            app:tabGravity="fill"/>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragment-backstack

18
推荐指数
1
解决办法
3万
查看次数

如何知道二进制数是否除以3?

我想知道二元系统中是否存在除以3的任何可分规则.

例如:在十进制中,如果数字总和除以3,则数字除以3.例如:15 -> 1+5 = 6 -> 6除以3,因此15除以3.

需要了解的重要一点是,我不会寻找能够这样做的代码.bool flag =(i%3 == 0); 不是我正在寻找的答案.我寻找人类容易做的事情,就像十进制定律一样.

algorithm math binary

13
推荐指数
1
解决办法
2万
查看次数

在Android中为选项卡式视图寻呼机单独返回导航

我想要的是.

在选项卡滑动菜单上下文中,我想在选项卡内将片段替换为另一个片段,并维护选项卡菜单以及当前选项卡.当滑动到另一个选项卡并返回原始时,我希望显示最后一个片段.

例如,我有tab_a带Fragment_1,tab_b带Fragment_4和tab_c带Fragment_7.现在,我想在一个按钮,Fragment_1打开了我Fragment_2,但我希望能够左右滑动来的碎片tab_b和tab_c.当我返回tab_a时,Fragment_2必须显示.

在此输入图像描述

MainActivity
    |
    |
ContainerFragment
    |
    |
    |_ _ _ Tab A
    |        |_ _ _ Fragment 1
    |        |
    |        |_ _ _ Fragment 2
    |        |
    |        |_ _ _ Fragment 3
    |        |
    |        |_ _ _ ...
    |        
    |_ _ _ Tab B
    |        |_ _ _ Fragment 4
    |        |
    | …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager android-tablayout

8
推荐指数
1
解决办法
1087
查看次数

安卓 在另一个标签布局的标签内的标签布局

是否可以在另一个选项卡布局的选项卡中有一个选项卡布局?我创建了以下图像,以进行更好的说明。所需的滑动运动如图像中所述。

在此处输入图片说明

我的主要活动

Xml

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="fixed"
            app:tabGravity="fill"/>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"  />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

码

public class MainActivity extends AppCompatActivity {

    private TabLayout tabLayout;

    private final static int[] tabIcons = {
            R.drawable.ic_tab_1,
            R.drawable.ic_tab_2,
            R.drawable.ic_tab_3,
            R.drawable.ic_tab_4
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
        setupTabIcons();
    }

    private void setupTabIcons() {
        tabLayout.getTabAt(0).setIcon(tabIcons[0]);
        tabLayout.getTabAt(1).setIcon(tabIcons[1]);
        tabLayout.getTabAt(2).setIcon(tabIcons[2]);
        tabLayout.getTabAt(3).setIcon(tabIcons[3]);
    }

    private …
Run Code Online (Sandbox Code Playgroud)

android slide android-fragments android-viewpager android-tablayout

4
推荐指数
2
解决办法
5939
查看次数

OpenCV - 将FLANN与ORB描述符一起使用以匹配要素

我正在使用OpenCV 3.2

我试图使用FLANN以比蛮力更快的方式匹配功能描述符.

// Ratio to the second neighbor to consider a good match.
#define RATIO    0.75

void matchFeatures(const cv::Mat &query, const cv::Mat &target,
                   std::vector<cv::DMatch> &goodMatches) {
    std::vector<std::vector<cv::DMatch>> matches;
    cv::Ptr<cv::FlannBasedMatcher> matcher = cv::FlannBasedMatcher::create();
    // Find 2 best matches for each descriptor to make later the second neighbor test.
    matcher->knnMatch(query, target, matches, 2);
    // Second neighbor ratio test.
    for (unsigned int i = 0; i < matches.size(); ++i) {
        if (matches[i][0].distance < matches[i][1].distance * RATIO)
            goodMatches.push_back(matches[i][0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码使用SURF和SIFT描述符,但不使用ORB.

OpenCV Error: …
Run Code Online (Sandbox Code Playgroud)

c++ opencv orb flann feature-descriptor

4
推荐指数
2
解决办法
9989
查看次数

使用JAX-RS Jersey 2和Grizzly的Swagger文档

我使用JAX-RS实现了Rest Web服务(该功能不相关).现在我想使用Swagger生成其文档.我已按照以下步骤操作:

1)在build.gradle我得到我需要的所有依赖项:

compile 'org.glassfish.jersey.media:jersey-media-moxy:2.13'

2)我用Swagger注释记录我的代码

3)我在我的Application子类中连接了Swagger:

public class ApplicationConfig extends ResourceConfig  {

    /**
     * Main constructor
     * @param addressBook a provided address book
     */
    public ApplicationConfig(final AddressBook addressBook) {
        register(AddressBookService.class);
        register(MOXyJsonProvider.class);
        register(new AbstractBinder() {
            @Override
            protected void configure() {
                bind(addressBook).to(AddressBook.class);
            }
        });
        register(io.swagger.jaxrs.listing.ApiListingResource.class);
        register(io.swagger.jaxrs.listing.SwaggerSerializers.class);

        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.2");
        beanConfig.setSchemes(new String[]{"http"});
        beanConfig.setHost("localhost:8282");
        beanConfig.setBasePath("/");
        beanConfig.setResourcePackage("rest.addressbook");
        beanConfig.setScan(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我进入我的服务时http://localhost:8282/swagger.json,我得到了这个输出.

在此输入图像描述

你可以在这里查看我的公共回购.

rest jax-rs grizzly swagger jersey-2.0

3
推荐指数
1
解决办法
1705
查看次数

CMake具有多个主电源和共享功能的编译项目

假设我有两个源文件A和B.每个人都有主要和公共功能.

A                 B
|__ main()        |__ main()
|__ foo()         |__ bar()
Run Code Online (Sandbox Code Playgroud)

我想bar方法使用foo功能.如何在CMake项目中编译它?

有了这种配置,很B明显不知道它A的foo功能.

cmake_minimum_required(VERSION 3.5)
project(My_project)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3")

add_executable(A A.cpp)
add_executable(B B.cpp)
Run Code Online (Sandbox Code Playgroud)

这种配置显然都有两种定义main.

cmake_minimum_required(VERSION 3.5)
project(My_project)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3")

set(SOURCE_FILES A.cpp)
add_library(A_lib STATIC ${SOURCE_FILES})

add_executable(A A.cpp)
add_executable(B B.cpp)

target_link_libraries(B A_lib)
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我想要的?我想不是两个电源,或独立的结合foo,并A main在两个不同的文件.也许使用C++标头?

c++ compilation cmake

3
推荐指数
1
解决办法
494
查看次数

运算符+在基类中重载并在派生类中使用它

我有2个类,base(带有复制构造函数)和派生,在baseΙ有重载operator+:

class Base {

  public:

     Base(const Base& x) {
         // some code for copying
     }

     Base operator+(const Base &bignum) const {
         Base x;
         /* ... */
         return x;
     }
};

class Derived : public Base {
};
Run Code Online (Sandbox Code Playgroud)

当我尝试做那样的事情

Derived x;
Derived y;
Derived c=x+y;
Run Code Online (Sandbox Code Playgroud)

我得到错误:conversion from "Base" to non-scalar type "Derived" derived 问题可能在于该运算符+返回Base类型的对象,我想将它分配给Derived类型对象?

c++ inheritance operator-overloading

2
推荐指数
1
解决办法
5848
查看次数

ResponseEntity,如何获取html中的body

我想在浏览器中显示控制器返回的 ResponseEntity 的主体(使用 Spring):

return new ResponseEntity<>(l.getReachableDate(), HttpStatus.NOT_FOUND);

l.getReachableDate()返回一个 Date 类型,我想以如下方式显示它:

<header>
    <h1><span>Url is not reachable from</span> <!-- body --> </h1>
</header>
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它显示出来?

html javascript spring response web

2
推荐指数
1
解决办法
2万
查看次数

Android系统.获取非活动类的字符串资源

我有一个String资源:

strings.xml
<resources>
    <string name="myString">stringName</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

如何从非活动类中获取字符串?

我做不到 getResources().getString(R.string.myString)

android android-activity android-resources

2
推荐指数
1
解决办法
7078
查看次数

C++ 使用纯虚函数实例化抽象类的子类

我有一个抽象类,例如Animal。Animal 有一个纯虚函数eat,如果每个动物不想挨饿,就必须实现它。我确保只能通过这种方式实例化 Animal 的孩子:

动物.hpp

class Animal
{

public:

    enum eAnimal{
        CAT=0,
        DOG=1,
        BIRD=2
    };

    // Instantiates the desired animal.
    static Animal GetAnimal(const int animal);

    virtual void Eat() const = 0;

protected:

    Animal();
};
Run Code Online (Sandbox Code Playgroud)

动物.cpp

Animal Animal::GetAnimal(const int animal)
{
    switch(animal)
    {
    case CAT:
        return Cat();
    case DOG:
        return Dog();
    case BIRD:
        return Bird();
    default:
        cerr << "Animal not recognized." << endl;
        exit(-1);
    }
}

Animal::Animal()
{}
Run Code Online (Sandbox Code Playgroud)

有了这个,猫将是:

猫.hpp

class Cat : public Animal …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism abstract-class return-by-value

1
推荐指数
1
解决办法
1252
查看次数

Python中的对数为零

我试图在Python中做零对数.

from math import log
log(0)
Run Code Online (Sandbox Code Playgroud)

这引起了我的例外.

ValueError: math domain error
Run Code Online (Sandbox Code Playgroud)

我理解log一个负数在数学上是未定义的,这就是Python log可以引发这个ValueError异常的原因.但是为什么在用零值调用它时也会引发异常呢?它应该返回一个-inf值,我已经看到无限数字可以在Python中表示(如此处所示).

我可以在没有亲自对待的情况下处理这个问题吗?我的意思是在做这样的事情时亲自.

from math import log, inf
foo = ... # Random value.
if foo != 0: return log(foo)
else: return -inf
Run Code Online (Sandbox Code Playgroud)

python logarithm valueerror

1
推荐指数
1
解决办法
5122
查看次数

C++指向一个对象,然后移动它的内存位置

我正在使用C++ 14.我们假设我有一个class X和一个std::vector<X> mVector.

我还有以下代码:

std::shared_ptr<X> AddX(const X &x)
{
    mVector.push_back[x];
    return std::shared_ptr<X>(&mVector[mVector.size()-1])
}
Run Code Online (Sandbox Code Playgroud)

此方法将对象x插入mVector并返回一个指向此插入对象的共享指针.

X x1;
shared_ptr<X> pX1 = AddX(x1);
Run Code Online (Sandbox Code Playgroud)

一切正常,但当我插入第二个对象

X x2;
shared_ptr<X> pX2 = AddX(x2);
Run Code Online (Sandbox Code Playgroud)

pX1不指向插入的对象x1,因为最后一个push_back已经在内存中移动了它的位置(在硬调试之后看到).这对我来说很可惜,因为我的程序需要这些指针才能正常工作,并且mVector需要是动态的,它一直在修改(使用新X对象或删除旧对象).

我怎样才能解决这个问题?我想比一种方法可以使用对象索引而不是它们的指针,但这会惩罚我的执行时间,因为我应该每次修改时更新许多属性mVector.是否可以管理它并仍然使用指针?

c++ pointers shared-ptr dynamic-memory-allocation

0
推荐指数
1
解决办法
63
查看次数