我想在一个布局中添加多个片段。但是,当我包含其他片段时,我会收到错误。请帮助。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#F0F8FF"
android:id="@+id/my_layout">
<ExpandableListView
android:id="@+id/lvExp"
android:layout_width="250dp"
android:layout_height="match_parent" >
</ExpandableListView>
<fragment
android:id="@+id/fragw3"
android:name="com.example.engineercalclist2.arrayHistory"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
答案 0 :(得分:0)
我希望我理解正确,但在这里:
您可以使用Fragments
,而不是直接从xml添加FrameLayout
。然后在您的代码上,让我们说当您单击ExpandableListView
项时,您可以更改片段。这是一个简单的例子。
将此添加到您的xml。
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
现在转到您的活动,声明Fragment
Fragment fragment = null;
然后在您的OnItemClickListener
上ExpandableListView
将fragment
设置为您想要更改的片段。
fragment = new Fragment_ToGo();
然后使用此
FragmentTransaction ft = getFragmentManager().beginTransaction();
getFragmentManager().beginTransaction().commit();
ft.replace(R.id.content_frame, fragment);
ft.commit();
修改强>
现在,我将使用here中的教程。我建议你先阅读,下面是我的解释。
首先,如果您的API早于11,则您的MainActivity(包含片段)应扩展为FragmentActivity
。如果您使用的是API 11或更新版本,那么您可以继续使用。
现在,像这样创建你的片段。
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;
public class ArticleFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.article_view, container, false);
}
}
这将是您的Activity的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:name="com.example.android.fragments.HeadlinesFragment"
android:id="@+id/headlines_fragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<fragment android:name="com.example.android.fragments.ArticleFragment"
android:id="@+id/article_fragment"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
最后,你的MainActivity:
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_articles);
}
}
现在因为我不知道你得到了什么错误,所以我只能帮助你。当您发布Logcat
时,我会再次编辑我的答案。