Android 横向模式下的多片段布局

Android multi-fragment layout in landscape mode

虽然我的代码可以运行,但我现在不知道它实际在做什么。 我的应用程序是一个 RSS reader,主要内容在一个 Fragment 中,其中包含一个 ListViewNewsStory 个对象。单击列表项时,它会打开一个 Intent,其中包含从 RSS 链接的网站。

现在的问题是,我不明白这里的Intent,这不是我以前使用过的Intent的方式。

此外,我必须做到这样,当我改变方向时,原始配置文件 Fragment 占据屏幕的左半部分,链接网页占据屏幕的右半部分。我已经对它进行了修补,但无济于事。我对方向变化做了一些研究,但我觉得用 Fragments 做事总是会改变一切的运作方式。不管怎样,这是 Fragment 代码。任何想法将不胜感激。

public class HeadlineFragment extends Fragment {

    EditText input;
    Button search;
    ListView headlines;
    NewsDataSource ds;


    public HeadlineFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_headline,container,false);

        input = (EditText)v.findViewById(R.id.txtInput);
        search = (Button)v.findViewById(R.id.btnSearch);
        headlines = (ListView)v.findViewById(R.id.listView);

        try {
            ds = new NewsDataSource();
        } catch (ExecutionException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        headlines.setAdapter(new NewsDataSourceAdapter(this.getActivity(), ds));

        headlines.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent,View view, int position, long id)
            {
                String url = NewsDataSource.stories[position].getLink();
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(url));
                startActivity(i);
            }
        });

        return v;
    }
    /*
    @Override
    public void onConfigurationChanged(Configuration newConfig){
        super.onConfigurationChanged(newConfig);


    }
    */
}

首先,关于Intent,它是一个隐含的Intent。当您将 action 设置为 ACTION_VIEW 并额外添加 URI / URL 时,OS 会收到消息,告知您要打开一个可以导航到该应用程序的应用程序URI / URL.

其次,为了在横向模式下显示双窗格布局,您必须在 Fragment 中显示 RSS 内容,而不是像您目前所做的那样在 Activity 中显示,并且您在横向模式下,必须在 Activity 中并排显示这些 Fragment。请参阅 Retrieving a List of Contacts 示例,了解如何在纵向模式下显示多窗格主细节布局的非常好的解释。

参考文献:

1. Intents and Intent Filters.

2. Planning for Multiple Touchscreen Sizes.