将ViewPager嵌入LinearLayout中的实现方法

3
我要做的是在我的应用程序中有一个ViewPager部分,用户可以滚动查看结果。我正在使用Android Studio。
目前,我正在这样显示结果,通过将值串联起来将它们输出到out
主要活动.java的一部分:
class CustomOnItemSelectedListener implements AdapterView.OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
        String tempValue = spinner1.getSelectedItem().toString();

        float inputValue;
        if(text.getText().length() == 0) {
             inputValue = Float.parseFloat("10");
             text.setText("10");
        }
        else {
             inputValue = Float.parseFloat(text.getText().toString());
        }

        if ("Fahrenheit".equals(tempValue)) {
            out.setText(String.valueOf(ConverterUtil.convertFahrenheitToCelsius(inputValue)) + " & " + String.valueOf(ConverterUtil.convertFahrenheitToKelvin(inputValue)));
            type.setText("Celsius + Kelvin");
           }
        if ("Celsius".equals(tempValue)) {
            out.setText(String.valueOf(ConverterUtil.convertCelsiusToFahrenheit(inputValue)) + " & " + String.valueOf(ConverterUtil.convertCelsiusToKelvin(inputValue)));
            type.setText("Fahrenheit + Kelvin");
        }
        if ("Kelvin".equals(tempValue)) {
            out.setText(String.valueOf(ConverterUtil.convertKelvinToCelsius(inputValue)) + " & " + String.valueOf(ConverterUtil.convertKelvinToFahrenheit(inputValue)));
            type.setText("Celsius + Fahrenheit");
        }
    }

我想做的是在单独的视图中为每个结果提供滚动功能,但这时我有点迷失/困惑。我已经实现了我的Fragment。主要代码在MainActivity.java中。
class ScreenSlidePagerActivity extends FragmentActivity

{
    private static final int NUM_PAGES = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mPager = (ViewPager) findViewById(R.id.pager);
    mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
    mPager.setAdapter(mPagerAdapter);
}

    private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
        public ScreenSlidePagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return new ScreenSlidePageFragment();
        }

        @Override
        public int getCount() {
            return NUM_PAGES;
        }
    }
}

在activity_main.xml布局中,我已经用ViewPager替换了out和type字段:
活动主要部分的XML代码:
<android.support.v4.view.ViewPager
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

被调用时,它会加载这个类并使用我的result_slider布局来显示信息:
ScreenSlidePageFragment.java
public class ScreenSlidePageFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(
                R.layout.result_slider, container, false);

        return rootView;
    }
}

result_slider.xml

<com.example.temperatureconverter
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView style="?android:textAppearanceMedium"
        android:padding="16dp"
        android:lineSpacingMultiplier="1.2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World" />

</com.example.temperatureconverter>

如何将我的结果数据传递到ViewPager中的一个窗格?使用下面的代码,我没有得到任何错误,但是应用程序崩溃并显示“Error inflating class android.support.v4.view.ViewPager”错误信息。

你好,能否提供完整的崩溃日志? - k3v1n4ud3
嗨,日志在这里:http://pastebin.com/kxecYpRg - Xeo
你使用的是哪个ViewPager,是来自支持库的那一个吗?你正在构建哪个版本的Android? - MungoRae
是的,来自支持库的那个(android.support.v4.view.ViewPager)。最低SDK版本为14,目标版本为19。 - Xeo
https://dev59.com/AGgv5IYBdhLWcg3wMN-0#10781162 - Nachi
不确定你想向我展示什么。支持库已经包含在构建路径中。它可以成功构建。 - Xeo
1个回答

2
尝试按照这个问题的答案操作:如何使用不同的Fragment/Layout实现ViewPager。请确保包含必要的库并将MainActivity与答案中的那个合并。然后在MainActivity对应的布局文件中放置你的ViewPager即可。
<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/viewPager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

您想让内容滚动/前往的位置


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接