根据ADT中默认的“固定标签+刷卡”活动,我的FragmentActivity
为FragmentPagerAdapter
。
FragementPagerAdapter
非常简单(只根据被调用的位置返回一个特定的片段),而FragmentActivity
本身也是Eclipse提供的“示例”代码中的默认值。最后附加了“有趣的”部分,但这就是它的外观(显然是出于问题目的简化)
现在在各种片段之一中,我有一个按钮,应该显示一些信息和图片/图片:一些不属于选项卡视图的东西。
最好的方法是什么?
我想过要么刚刚开始一项新活动,但我们不赞成使用片段进行构建,所以我放弃了这个选项。然后我可以制作一个“随机”片段来展示,但我不确定如何实现与寻呼机相关的 - >这实际上可能是最好的方式。
我能想出的是展示DialogFragment
。我实际上是这样实现的:
首先使用此onCreateView
创建一个DialogFragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout v = (LinearLayout) inflater.inflate(R.layout.entry, container, false);
//set image
return v;
}
并显示如下:
fragment.show(getSupportFragmentManager(), "dialog");
xml是stackoverflow上建议的简单linearLayout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="1000dp"
android:minHeight="1000dp">
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/image_desc"
/>
</LinearLayout>
这里的问题是,虽然这显示得很好,但似乎有一些东西(寻呼机的标题栏?不确定)添加到图片上方:
很难看到,但我相信它与寻呼机碎片标题的底部直接相符,所以我似乎“继承”了一些功能?
当前基本代码
来自FragmentActivity
setContentView(R.layout.activity_main);
...
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
SectionsPagerAdapter
是一个内部类FragmentPagerAdapter
,它返回一些片段,没有什么有趣的
activity_main
,再次非常标准:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<!--
This title strip will display the currently visible page title, as well as the page
titles for adjacent pages.
-->
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#555555"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#fff" />
</android.support.v4.view.ViewPager>
答案 0 :(得分:1)
在我看来,使用dialogFragment似乎是一个很好的方法,它肯定是最简单的方法之一。
此外,如果合适,您可以将dialogFragment设为全屏,如下所示: 在values / styles.xml中创建自定义对话框样式
<!-- DIALOG STYLE -->
<style name="Your.Dialog" parent="android:Theme.Holo.Dialog" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsFloating">false</item>
</style>
然后设置调用片段的样式,如下所示:
myDialogFragment dialog = new myDialogFragment ();
dialog.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Your_Dialog );
dialog.show(getSupportFragmentManager(), "fragment_tag");