我有以下片段,IdentificationFragment
我想让这个片段加载一个初始屏幕,然后当我按下一个按钮时,切换视图。 (最终识别面部,识别rfid和识别语音)。但我在Fragment本身处理这个问题时遇到了麻烦。
这就是片段目前的样子。
public class IdentificationFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.identification_face, container, false);
}
这是我的identification_face.xml布局:
<?xml version="1.0" encoding="utf-8"?>
<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/identificationSwitcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:onCLick="nextView"
android:text="Next View" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView1"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imageView1"
android:gravity="center_vertical"
android:text="@string/article2" />
更通用的东西,另一个相对布局
</RelativeLayout>
</ViewSwitcher>
我关注的是Here提供的示例,但它使用的是活动而不是片段。
由于通过onCLick()定位片段方法所涉及的问题,我不知道这是否可行。
我尝试在我的片段中使用此代码,但我似乎做了更多的伤害然后好。
public void onCreate(Bundle savedInstanceState, LayoutInflater inflater) {
super.onCreate(savedInstanceState);
inflater.inflate(R.layout.identification_face, article_container);
ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.identificationSwitcher);
}
希望这是可能的,我使用片段的原因是为了消除启动另一个活动,因为我的应用程序将加载实时视频处理,我想只在这个片段中使用它。 / p>
我花了很多时间在developer.android上使用这个功能,但它们没有提供太多帮助。
谢谢!
答案 0 :(得分:2)
看起来你几乎和你的设置在一起了。您只需要在onCreateView方法中找到您的视图。
以下是如何设置ViewSwitcher以及如果单击button1时如何触发视图切换的示例:
ViewSwitcher mViewSwitcher;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View root = inflater.inflate(R.layout.identification_face, container, false);
mViewSwitcher = root.findViewById(R.id.identificationSwitcher);
Button button1 = root.findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
mViewSwitcher.setDisplayedChild(1);
}
});
return root;
}
setDisplayedChild是ViewSwitcher用于在视图之间切换的方法。 0是第一个视图的索引。
好运