Fragment实现界面跳转的效果

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:id="@+id/activity_main"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:orientation="vertical"
 8     tools:context="com.example.zhoushasha.myapplication.MainActivity">
 9 
10     <LinearLayout
11         android:id="@+id/show"
12         android:layout_width="match_parent"
13         android:layout_height="0dp"
14         android:orientation="vertical"
15         android:layout_weight="1">
16 
17     </LinearLayout>
18     <LinearLayout
19         android:layout_width="match_parent"
20         android:layout_height="0dp"
21         android:orientation="vertical"
22         android:layout_weight="1">
23         <Button
24             android:id="@+id/next"
25             android:layout_width="wrap_content"
26             android:layout_height="wrap_content"
27             android:layout_gravity="center"
28             android:text="no way"
29             android:onClick="onClick"/>
30 
31 
32 
33 
34 
35     </LinearLayout>
36 
37 </LinearLayout>

fragment界面的布局

<FrameLayout 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="layout.yesFragment">

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="all roads to china"
        android:textSize="30dp"/>
</FrameLayout>

部分Java实现代码

 1   @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_main);
 5         FirstFragment firstFragment= new FirstFragment();
 6 
 7         FragmentManager manager = getFragmentManager();
 8         FragmentTransaction transaction = manager.beginTransaction();
 9 
10         firstFragment = new FirstFragment();
11         transaction.add(R.id.next, firstFragment);
12         transaction.commit();
13 
14     }
15 
16 
17     public void onClick(View view) {
18         if (view.getId() == R.id.next) {
19             tc = true;
20             if (qh) {
21                 FragmentManager manager = getFragmentManager();
22                 FragmentTransaction transaction = manager.beginTransaction();
23                 if (secondFragment == null) {
24                     secondFragment   secondFragment= new secondFragment();
25                     transaction.replace(R.id.next, secondFragment);
26                     transaction.commit();
27                     qh = false;
28                 } else {
29                     transaction.replace(R.id.next, secondFragment);
30                     transaction.commit();
31                     qh = false;
32                 }
33             } else {
34                 Toast.makeText(this, "This is second fragment", Toast.LENGTH_SHORT).show();
35             }
36 
37         }
38     }
39 
40     public boolean onKeyDown(int keyCode, KeyEvent event) {
41 
42         if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && tc) {
43 
44             FragmentManager manager = getFragmentManager();
45             FragmentTransaction transaction = manager.beginTransaction();
46             FirstFragment firstFragment=new FirstFragment();
47             qh = true;
48             tc = false;
49             transaction.replace(R.id.next, firstFragment);
50             transaction.commit();
51             return false;
52         } else {
53             finish();
54         }
55         return super.onKeyDown(keyCode, event);
56 
57 
58     }
59 
60 }

 

转载于:https://www.cnblogs.com/zhoushasha/p/6730962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android中,可以使用FragmentManager和FragmentTransaction来实现Fragment界面跳转。具体步骤如下: 1. 在Activity中获取FragmentManager对象。 2. 创建需要跳转Fragment对象。 3. 使用FragmentTransaction对象进行Fragment的添加、替换或移除操作。 4. 调用FragmentTransaction的commit()方法提交事务,完成Fragment界面跳转。 例如,以下代码实现了从一个Fragment跳转到另一个Fragment的操作: ``` // 获取FragmentManager对象 FragmentManager fragmentManager = getSupportFragmentManager(); // 创建需要跳转Fragment对象 Fragment newFragment = new NewFragment(); // 开启FragmentTransaction事务 FragmentTransaction transaction = fragmentManager.beginTransaction(); // 添加或替换Fragment transaction.replace(R.id.container, newFragment); // 提交事务,完成Fragment界面跳转 transaction.commit(); ``` 其中,R.id.container是一个FrameLayout控件,用于显示Fragment界面。需要根据实际情况进行修改。 ### 回答2: 在Android中,Fragment是一种UI组件,它可以嵌入其他的UI组件并且具有自己的生命周期。在开发Android应用程序时,通常需要在不同的Fragment之间进行界面跳转,使用户能够流畅地浏览应用程序。 首先,在Android应用程序中创建Fragment。可以在Java代码中创建和管理Fragment,也可以在XML文件中定义Fragment,并在Java代码中引用它。然后,使用FragmentManager类管理Fragment的生命周期和跳转。 要在Fragment之间进行界面跳转,可以使用FragmentManager类的beginTransaction()方法创建一个FragmentTransaction,然后使用replace()方法将当前的Fragment替换为要跳转Fragment。例如,下面的代码演示了如何将一个Fragment替换为另一个Fragment: ``` FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_container, new AnotherFragment()); transaction.commit(); ``` 在上面的代码中,R.id.fragment_container是一个FrameLayout组件的ID,它是用来作为Fragment容器的。new AnotherFragment()是要跳转到的Fragment。 除了使用replace()方法,还有其他一些方法可以使用: add():将一个Fragment添加到容器中,并在需要时显示它。 remove():从容器中删除一个Fragment,并在需要时隐藏它。 show():显示一个Fragment。 hide():隐藏一个Fragment。 通过使用这些方法,可以在Fragment之间实现各种跳转效果。例如,可以使用add()和remove()方法实现Fragment的切换效果,使用show()和hide()方法实现Fragment的显示和隐藏效果等等。 总之,在Android中,使用FragmentManager类可以很容易地实现Fragment之间的界面跳转。通过合理地选择不同的方法,可以实现各种跳转效果,为用户提供良好的体验。 ### 回答3: Android中Fragment是一种可重复使用的UI组件,可以在同一界面中装载多个Fragment实现更加灵活的界面设计。而在多个Fragment之间的跳转,有以下几种方法: 1. 通过Activity的FragmentManager进行Fragment切换 在Activity中通过FragmentManager,使用replace()方法将当前Fragment替换成需要跳转Fragment即可完成跳转。这种方法适用于Fragment与Activity之间的切换和不同Fragment之间的切换。 2. 通过Fragment的getChildFragmentManager进行Fragment切换 在Fragment中如果需要切换其他Fragment,则需要使用getChildFragmentManager()方法获取FragmentFragmentManager,然后再使用replace()方法切换Fragment。 3. 通过接口回调进行Fragment之间的通信 通过接口的回调机制可以实现Fragment之间的通信,从而实现Fragment之间的跳转。具体来说,可以定义一个接口,然后在一个Fragment实现该接口,并在另一Fragment中调用该接口的方法,从而完成Fragment的切换。 4. 通过Intent启动一个新的Activity 如果需要从一个Fragment跳转到一个全新的Activity中,可以使用Intent来完成跳转。此方法适用于需要在新的Activity中展示更多内容或需要完成较复杂任务的场景。 总之,在Android开发中,Fragment作为可重复使用的UI组件,增强了APP的灵活性和可维护性,同时也实现Fragment与Activity之间、不同Fragment之间的跳转。开发者可以根据业务需求适当选择不同的跳转方式,从而实现更加丰富的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值