Android 未隐藏的片段事务
我有一个Android 未隐藏的片段事务,android,Android,我有一个符号片段和一个按钮。单击按钮时,将向用户显示注册片段。我使用下面的代码执行FragmentTransaction,并希望SignupFragment替换SigninFragment,但是SignupFragment显示在SigninFragment的下方。谁能告诉我我做错了什么 public void onClick(View v) { FragmentManager fragmentManager = getFragmentManager(); FragmentTran
符号片段
和一个按钮
。单击按钮
时,将向用户显示注册片段
。我使用下面的代码执行FragmentTransaction
,并希望SignupFragment
替换SigninFragment
,但是SignupFragment
显示在SigninFragment
的下方。谁能告诉我我做错了什么
public void onClick(View v) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
WindowManager wm = getWindowManager();
Display d = wm.getDefaultDisplay();
SignUpFragment su = new SignUpFragment();
fragmentTransaction.replace(R.id.SigningIn, su);
fragmentTransaction.commit();
}
活动布局:
<LinearLayout 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"
android:background="@drawable/bgmain"
tools:context=".MainActivity"
android:layout_gravity="center"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:gravity="center">
<fragment
android:id="@+id/SigningIn"
android:name=".SignInFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"/>
</LinearLayout>
为了使片段可替换,它必须以编程方式添加,而不是通过XML
请参阅相关教程。要通过代码而不是布局创建初始片段,请执行以下操作: 将id
@+id/SigningIn
设置为布局中的片段容器(通常是FrameLayout
),以代替
标记
当savedInstanceState
为空时,通过在Activity
的onCreate()
中执行FragmentTransaction
创建初始片段:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content);
...
if (savedInstanceState == null) {
SignInFragment f = new SignInFragment();
getFragmentManager().beginTransaction().add(R.id.SigningIn, f).commit();
}
}
您的布局可能有问题。请将你的
活动的布局编辑到你的问题中。好的,我做了,现在你认为我的问题是什么?