【问题标题】:Fragment Transitions片段转换
【发布时间】:2018-06-14 14:10:29
【问题描述】:

我正在 Android 中开发一个应用程序来测试片段转换..

作为起点,我创建了一个带有一个片段“Fragment1”的活动。 我想在活动开始时加载这个片段..

MainActivity 出现问题。我收到消息“无法解析方法”。

fragmentTransaction.add(R.id.container,fragment1);

该方法的第一个参数是 MainActivity.xml 中的 ViewPager id。第二个参数是 Fragment1 类的实例。

我该怎么办?

以下代码:

对于 MainActivity.java

import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";
private android.support.v4.app.FragmentManager fragmentManager;
private android.support.v4.app.FragmentTransaction fragmentTransaction;
private boolean status_zwart, status_geel, status_rood;
ViewPager viewPager;

//FragmentPagerAdapter saves the Fragments in memory, so they can be accessed more rapidly
//FragmentStatePagerAdapter is better for situations in which you have a lot of Fragments >10
//ViewPager is a LayoutManager that is used to animate Transitions between entire screens, serves as a Fragment Container

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(TAG, "Activity Started");

    viewPager = (ViewPager)findViewById(R.id.container);

    Fragment1 fragment1 = new Fragment1();
    fragmentManager = getSupportFragmentManager();
    fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.container,fragment1);
    fragmentTransaction.commit();
}

对于 MainActivity.xml 我使用 ViewPager 作为片段的容器视图..

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.gebruiker.fragment_transitions.MainActivity">

<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


</android.support.v4.view.ViewPager>

对于 Fragment.java

public class Fragment1 extends Fragment {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment1_layout,container,true);
    return rootView;
}
}

【问题讨论】:

标签: android


【解决方案1】:

您可能搞砸了 android.support.v4.app.Fragmentandroid.app.Fragment 。检查所有进口。如果您使用的是 Support Fragment,那么您的 Fragment1 应该是这样的。

   import android.support.v4.app.Fragment;
public class Fragment1 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment1_layout, container, true);
        return rootView;
    }
}

这将解决您的问题。确保您使用 android.support.v4.app.FragmentTransaction 以防支持片段。

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多