【发布时间】:2014-05-13 17:20:35
【问题描述】:
我是 Android 新手,我正在玩 Fragments,我知道有很多例子可以了解 Fragments 的工作原理,不幸的是没有很多使用 Nested-Fragments 的例子(它们是在同一个Activity)。
这是我下面的代码,我遇到了 2 个问题:
在我添加辅助
Fragment后,RootFragment可见。两个
Fragment使用相同的设计,但是当我添加FragmentIi 时可以看到小部件的尺寸和屏幕上的位置不一样。我需要一些关于如何正确操作的反馈。
谢谢!
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_login,
container, false);
TextView tv = (TextView) rootView.findViewById(R.id.signUpText1);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentTransaction ft = getFragmentManager()
.beginTransaction();
ft.replace(R.id.loginViewPlaceholder, new SignupFragment());
ft.commit();
}
});
return rootView;
}
}
public static class SignupFragment extends Fragment {
public SignupFragment() {
// TODO Auto-generated constructor stub
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View signupView = inflater.inflate(R.layout.fragment_signup,
container, false);
return signupView;
}
}
}
【问题讨论】:
-
当您说
Fragments 使用相同的“设计”时,您的意思是他们的xml布局相同吗? -
您可能必须显示片段的 XML 布局(fragment_login.xml、fragment_signup.xml),以便任何人都能够诊断为什么它们在屏幕上看起来不同。
标签: android android-fragments fragment android-nested-fragment