- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了理解 fragment 背后的基本概念,我一直在尝试构建一个 Android 应用程序。但我完全无法显示和隐藏 fragment 。
这是我的 onClickListner 代码
final FragmentManager fragmentManager = getFragmentManager();
b.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void onClick(View v) {
FragmentTransaction ft = fragmentManager.beginTransaction();
PM_Fragment pm_fragment = new PM_Fragment();
ft.replace(android.R.id.content, pm_fragment);
if (pm_fragment.isHidden()) {
fragmentManager.beginTransaction()
.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
.show(pm_fragment)
.commit();
b.setText("Hide");
} else {
fragmentManager.beginTransaction()
.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
.hide(pm_fragment)
.commit();
b.setText("Show");
}
}
});
fragment 在我的例子中只是一个文本行。该按钮应该做的是切换 fragment 的可见性。谁能告诉我这段代码有什么问题吗?
不工作,我的意思是该按钮在点击时什么都不做,除了将其文本从“隐藏”更改为“显示”,然后无论您点击多少次,它都会保持“显示”。而这个过程对 fragment 的行为完全没有影响。
最佳答案
我真的不明白你想在这里做什么,但你从来没有提交ft
所以你的Fragment
从未添加到 Activity
.我也不明白这两个内部FragmentTransaction
的目的,但可以肯定的是,您不需要根本不需要它们...
全局定义:
private PM_Fragment pmFragment = new PM_Fragment();
还有你的OnClickListener
应该是这样的:
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
if(pmFragment.isAdded()) {
ft.remove(pmFragment);
} else {
ft.replace(android.R.id.content, pmFragment);
}
ft.commit();
}
});
重要:对于 FragmentTransactions
上类,Fragment
必须在代码中添加!如果您在 XML 中添加它们,则它们不会受到 FragmentTransactions
的影响。 !所以如果添加你的 Fragment
像这样:
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="at.example.fragments.SomeFragment" />
或者使用其他一些类似的方法,我确信这至少是问题的一部分。您需要添加您的 Fragment
仅在这样的代码中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
SomeFragment fragment = SomeFragment.newInstance();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.flFragmentContainer, fragment);
transaction.commit();
}
}
只需替换 <fragment />
在布局中使用类似这样的标记:
<FrameLayout
android:id="@+id/flFragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
它将作为 Fragment
的容器你想添加。您可以使用 FragmentTransaction
在上面添加 Fragment
对此FrameLayout
.
关于android - fragment 显示/隐藏根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24881715/
我遇到了一个似乎很独特的问题。我的 NSUbiquitousKeyValueStore 在模拟器中的启动之间根本不起作用。也就是说,我什至不是在谈论 iCloud 同步或类似的东西,我无法让它通过下面
首先,我使用的是 WiX 版本 3.5.2519.0,但我也在最新的 3.6 版本上测试了它,结果相同。 我很难确定 PatchFamily 究竟能过滤掉 torch 生成的差异的某些部分。按照手册中
我可以获取要呈现的“帮助主题”标题,但无法获取我定义的任何FIXTURES。 {{#each model}} 中的任何内容都不会渲染。这是我第一次使用 Ember,所以任何东西(字面意义上的任何东
我一直在尝试设置custom ajaxTransports for jQuery在我们的产品的某些场景下缩短某些工作流程。然而,我在让这些传输受到尊重方面取得了零成功(而我有很多工作 custom a
为什么纯无类型 lambda 演算经常被描述为无法使用? 有了合适的函数库,它会不会与任何其他函数式语言大致相同? 最佳答案 速度不是大问题。例如,您可以决定使用教堂数字但优化实现,以便像往常一样表示
我是一名优秀的程序员,十分优秀!