在片段内使用ViewSwitcher来更改视图

时间:2012-09-14 18:43:40

标签: android android-fragments viewswitcher

我有以下片段,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上使用这个功能,但它们没有提供太多帮助。

谢谢!

1 个答案:

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

好运

相关问题