Emi*_*Adz 27 android android-fragments fragmenttransaction fragmentmanager
我创建了几个片段,并按以下方式添加第一个片段:
mainFragment = (MainFragment) MainFragment.create();
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
.add(R.id.content, mainFragment, MAIN_FRAGMENT_TAG)
.commit();
Run Code Online (Sandbox Code Playgroud)
第二个片段以这种方式添加:
getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
//.hide(mainFragment)
.add(R.id.content,VenueFragment.create(vid), "Venue Fragment")
.addToBackStack(null)
.commit();
setDrawerIndicatorEnabled(false);
Run Code Online (Sandbox Code Playgroud)
现在你看到hide方法没有应用于这个事务,并且VenueFragment
打开了,在这种情况下的问题是,当VenueFragment
按下这个片段的空部分时打开(并且它是一个全屏视图)调用MainFragment
可点击视图的调用.我怎么能阻止这个?
如果我使用隐藏选项,那么它不会发生,但由于某种原因,删除它的动画MainFragment
正在上升,这会产生一种奇怪的体验.
Dig*_*ale 15
将第二个片段视图上的可点击属性设置为true.
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
Run Code Online (Sandbox Code Playgroud)
在VenueFragment上设置onClickListener会有效,但我会再添加一些解释.使主片段获得触摸事件是用于处理场地片段是透明的情况的行为.在这种情况下,可以合理地预期触摸通过您的透明视图到下面的那个.因此,android会通过触摸事件直到可以处理它们.设置onClickListener将处理该事件,防止将其传递给下一个View.如果您希望"正确"防止对较低片段的点击,可以选择以下几种方法:
归档时间: |
|
查看次数: |
10329 次 |
最近记录: |