- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这似乎是一个我不好意思问的基本问题,但我对我的 Fragment
学习曲线感到非常沮丧,以至于我会暴露我的无知。
教科书中的一个例子,它削减了很多角落,使得扩展变得困难,即使它们有效,也没有按钮可以点击; MainActivity
只是加载了 FragmentA
。好的,保持基本。我明白了。
所以我在MainActivity
中添加了一个按钮来点击加载FragmentA
,但是按钮显示在FragmentA
屏幕上,有点像这样(不是实际的屏幕截图,但很接近):
我如何防止这种情况发生?我应该使用第二个 Activity
而不是 Fragment
吗?由于这项工作将用于更大的项目,因此我不想做任何被认为不是最佳实践的事情。我意识到 Fragment
的主要用途是在足够大的设备上启用并排“屏幕”。这不是我想要做的,但可以用 Fragment
完成我想要的,不是吗?
MainActivity.java
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate( savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btnLoadFragmentAByClick(View view)
{
FragmentA fragmentA;
fragmentA = new FragmentA();
FragmentTransaction ft ;
ft = getFragmentManager().beginTransaction();
ft.replace(R.id.layout_container, fragmentA);
ft.addToBackStack("example");
ft.commit();
}
}
FragmentA.java
public class FragmentA extends Fragment
{
@Override
public View onCreateView(LayoutInflater _inflater,
ViewGroup _container,
Bundle _savedInstanceState)
{
return _inflater.inflate(R.layout.fragment_a,
_container,
false);
}
}
activity_main.xml
<RelativeLayout
xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:tools ="http://schemas.android.com/tools"
android:layout_width ="match_parent"
android:layout_height ="match_parent"
tools:context =".MainActivity" >
<LinearLayout
android:id ="@+id/layout_container"
android:orientation ="vertical"
android:layout_width ="wrap_content"
android:layout_height="wrap_content"
>
</LinearLayout>
<Button
android:id ="@+id/btnLoadFragmentA"
android:text ="Load Fragment A"
android:onClick="btnLoadFragmentAByClick"
android:layout_width ="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
fragment_a.xml
<RelativeLayout
xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="match_parent"
android:layout_height ="match_parent" >
<TextView
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:text ="Layout for fragment A"
android:textAppearance ="?android:attr/textAppearanceLarge"
>
</TextView>
</RelativeLayout>
编辑
我意识到我可以在加载 FragmentA
之前隐藏 MainActiviy
按钮(和任何其他对象)并在返回后显示它们,但我希望有一个或多个- 两行“修复”。
最佳答案
How do I prevent that?
好吧,在某种程度上,你不需要,因为这与 fragment 无关。
您的 activity_main.xml
有 Button
float 在您用于 fragment 容器的 LinearLayout
(???) 之上.如果您不希望 Button
float 在 fragment 容器的顶部,请修复布局文件,使 Button
不 float 在 fragment 容器的顶部。
I realize that I could hide the MainActiviy button (and any other objects) before loading FragmentA and show them after returning, but I was hoping for a one-or-two-line "fix".
使用 fragment 替换完整 UI 的典型解决方案是将所有内容都放在 fragment 中。您的 replace()
将用替换项替换您的原始 fragment 。因此,在这种情况下,您的 Button
将由一个 fragment 管理,单击 Button
将用另一个 fragment replace()
该 fragment 。鉴于您的 FragmentTransaction
具有 addToBackStack()
,按 BACK 将删除替换 fragment 并返回到您的 Button
fragment 。
关于java - 我希望我的 Android Fragment 覆盖 MainActivity 屏幕(我不想看到任何 MainActivity 文本、按钮等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32321528/
我的应用程序中有一个 IList 站点,并且站点有大量属性。 我想将此列表转换为 JSON,以便在类似于此的下拉列表中使用 var sites = SiteRepository.FindAll
我正在将一些代码从 bluebird 切换到原生 Promises,并且我对原生 promises 吞下错误这一事实感到相当恼火,即使没有定义 .catch() 也是如此。它使调试变得不可能,除非您在
在同步访问共享资源时,是否有理由不使用读/写锁而不是普通的互斥锁(基本上只是写锁),除了它具有比我可能需要的更多功能的哲学原因? 换句话说,如果我只是默认使用读/写锁作为我首选的同步结构,我是不是在踢
我刚进入这个元素,代码已经写好了,但我们发现了一个问题。当您单击菜单中的任何位置时,它会变成金色,您看不到菜单该部分中的任何链接。您可以再次单击它,它将返回到正常状态。这只发生在 Internet E
这是一个简单的类和简单的测试函数: #include #include namespace { using namespace std; } class NameStream {
我有一个 std::vector其中 Foo是一个包含 Foo( Foo&& ) noexcept 的类. 向容器中添加对象完美无缺,但是使用 std::vector::erase( iterator
我正在通过这段代码使用各种浏览器尝试 localStorage 和 JSON: function getStorage() { stored = JSON.pa
您可能认为此问题与 Running two projects at once in Visual Studio 完全相同.不完全是,恰恰相反。 我有一个带有两个 MVC3 项目的 VS 2010 解决
我正在制作一个网站:http://arc-angyal.hu/ 我的第一个问题是,我无法让左侧的红色 div 足够高以填充页眉和页脚之间的空间。它位于标题之后和导航之前。我已经设置: html, bo
根据 This Question ,我正在使用线程来终止用户输入的函数。我的代码看起来像: bool stopper = false; thread stopThread(userStop, &sto
我是一名优秀的程序员,十分优秀!