对于长篇文章感到抱歉,我试图尽可能让它变得可读。
我对JAVA有很好的了解并试图了解Android编程。今天我一直在研究片段的知识。
我已阅读this article并了解了与他们合作的基础知识。我设法制作片段并在需要时替换它们。
我继续采用this project,并认为尝试使用我为实践目的而构建的基本tictactoe游戏添加片段可能会很有趣。
现在我遇到了更换片段的问题。一切正常,直到我在混合中添加TicTacToe视图,其中有一个tablelayout。该片段没有被替换,而是添加了一个额外的片段(或者看起来如此)并使用它来切换片段。
BoardField
只是我制作的一个extends Button
对我不起作用的布局是:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0f0fdf">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.javacodegeeks.android.fragmentstest.BoardField android:id="@+id/my_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonDefault"
android:onClick="selected"
/>
<com.javacodegeeks.android.fragmentstest.BoardField android:id="@+id/my_button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonDefault"/>
<com.javacodegeeks.android.fragmentstest.BoardField android:id="@+id/my_button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonDefault"/>
</TableRow>
</TableLayout>
为了便于阅读,我省略了其他行,它们是相似的。
所以我的问题是,为什么在使用TableLayout时替换片段不起作用?
编辑:
Eric的解决方案有效,我希望能找到更多有关原因的信息?
答案 0 :(得分:1)
为什么父视图是TableLayout?尝试将其更改为具有子项的RelativeLayout,TableLayout(仅用于测试目的)
使用RelativeLayout作为父视图,您是否能够“替换”而不是“添加”片段?
答案 1 :(得分:0)
我认为你的错误不在这里。也许您可以查看代码,在那里您可以创建新的片段或替换片段的代码。没有任何意义,TableLayout会替换片段。 Eric是对的RelativeLayout比TableLayout好,但这不是问题。你能放更多的代码吗?