Android Fragments在方向更改时制作了重复的TextView

Android Fragments在方向更改时制作了重复的TextView,第1张

概述我正在尝试制作一个非常简单的App,但是有一个错误无法消除.也许有人可以帮助我.我正在使用ActionBar和3个选项卡进行活动.在选项卡的下面是一个FrameLayout,在其中放置了带有TextView的片段.因此,单击选项卡时,TextView的内容应更改.直到我更改方向,这都可以正常工作.更改后,有一

我正在尝试制作一个非常简单的App,但是有一个错误无法消除.也许有人可以帮助我.

我正在使用Actionbar和3个选项卡进行活动.在选项卡的下面是一个FrameLayout,在其中放置了带有TextVIEw的片段.因此,单击选项卡时,TextVIEw的内容应更改.
直到我更改方向,这都可以正常工作.更改后,有一个重复的TextVIEw,我不知道它来自哪里.这是一张更好理解的图片:
Overlapping TextViews

这是我的活动:

package com.test;import androID.app.Actionbar;import androID.app.Activity;import androID.app.FragmentTransaction;import androID.app.Actionbar.Tab;import androID.os.Bundle;import androID.Widget.Toast;public class ProblemActivity extends Activity {  /** Called when the activity is first created. */  @OverrIDe  public voID onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentVIEw(R.layout.main);      Actionbar bar = getActionbar();      bar.setNavigationMode(Actionbar.NAVIGATION_MODE_TABS);      String tab1 = "First Tab";    bar.addTab(bar            .newTab()            .setText(tab1)            .setTabListener(                    new TabListener(new First())));      String tab2 = "Second Tab";    bar.addTab(bar            .newTab()            .setText(tab2)            .setTabListener(                    new TabListener(new Second())));      String tab3 = "Third Tab";    bar.addTab(bar            .newTab()            .setText(tab3)            .setTabListener(                    new TabListener(new Third())));  }private class TabListener implements Actionbar.TabListener {    private MyFragment mFragment;    public TabListener(MyFragment fragment) {        this.mFragment = fragment;    }    public voID onTabSelected(Tab tab, FragmentTransaction ft) {        ft.add(R.ID.fragment_content, mFragment, null);    }    public voID onTabUnselected(Tab tab, FragmentTransaction ft) {        ft.remove(mFragment);    }    public voID onTabReselected(Tab tab, FragmentTransaction ft) {        Toast.makeText(ProblemActivity.this, "Reselected!", Toast.LENGTH_SHORT)                .show();    }}

}

片段的:

public class First extends MyFragment {public First() {}@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,        Bundle savedInstanceState) {    VIEw fragVIEw = inflater.inflate(R.layout.tab1, container, false);    TextVIEw tv = (TextVIEw) fragVIEw.findVIEwByID(R.ID.textVIEw1);    tv.setText("First Tab");    return fragVIEw;}

}

main.xml:

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:orIEntation="vertical" ><FrameLayout    androID:ID="@+ID/fragment_content"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent" /></linearLayout>

以及Fragment’s.xml的内容:

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:orIEntation="vertical" ><TextVIEw    androID:ID="@+ID/textVIEw1"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:gravity="center"    androID:text="TextVIEw"    androID:textSize="35dp" /></linearLayout>

如果有人能告诉我我做错了,那将是惊人的.
提前致谢!

编辑:我已经尝试了this proposed solution,但我想使用Object类,以便可以使用其Methods.

Edit2:现在解决了问题.将androID:configChanges =“ keyboardHIDden | orIEntation | screenSize”添加到我的Activity中就足够了.

解决方法:

由于OP已经解决了他的问题,但是已经有近一年没有活跃在SO上了,所以以下是包含解决方案的答案:

在“活动”中添加以下内容可解决此问题:

androID:configChanges="keyboardHIDden|orIEntation|screenSize"
总结

以上是内存溢出为你收集整理的Android Fragments在方向更改时制作了重复的TextView全部内容,希望文章能够帮你解决Android Fragments在方向更改时制作了重复的TextView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1072386.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存