0

我有以下片段,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>

我正在按照此处提供的示例进行操作,但使用的是活动而不是片段。

由于通过 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);
}

希望这是可能的,我使用片段的原因是消除启动另一个活动,因为我的应用程序将加载实时视频处理,我只想在这个片段中使用它。

我在 developer.android 上花了很多时间使用此功能,但它们并没有提供太多帮助。

谢谢!

4

1 回答 1

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 是您的第一个视图的索引。

祝你好运

于 2012-09-18T05:30:30.277 回答