我想得到最后一个片段在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
我想知道二元系统中是否存在除以3的任何可分规则.
例如:在十进制中,如果数字总和除以3,则数字除以3.例如:15 -> 1+5 = 6 -> 6除以3,因此15除以3.
需要了解的重要一点是,我不会寻找能够这样做的代码.bool flag =(i%3 == 0); 不是我正在寻找的答案.我寻找人类容易做的事情,就像十进制定律一样.
我想要的是.
在选项卡滑动菜单上下文中,我想在选项卡内将片段替换为另一个片段,并维护选项卡菜单以及当前选项卡.当滑动到另一个选项卡并返回原始时,我希望显示最后一个片段.
例如,我有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
是否可以在另一个选项卡布局的选项卡中有一个选项卡布局?我创建了以下图像,以进行更好的说明。所需的滑动运动如图像中所述。
我的主要活动
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
我正在使用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) 我使用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,我得到了这个输出.
你可以在这里查看我的公共回购.
假设我有两个源文件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++标头?
我有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类型对象?
我想在浏览器中显示控制器返回的 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)
我怎样才能让它显示出来?
我有一个String资源:
strings.xml
<resources>
<string name="myString">stringName</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
如何从非活动类中获取字符串?
我做不到 getResources().getString(R.string.myString)
我有一个抽象类,例如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) 我试图在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) 我正在使用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++ ×5
android ×4
algorithm ×1
binary ×1
cmake ×1
compilation ×1
flann ×1
grizzly ×1
html ×1
inheritance ×1
java ×1
javascript ×1
jax-rs ×1
jersey-2.0 ×1
logarithm ×1
math ×1
opencv ×1
orb ×1
pointers ×1
polymorphism ×1
python ×1
response ×1
rest ×1
shared-ptr ×1
slide ×1
spring ×1
swagger ×1
valueerror ×1
web ×1