我有一个包含listView的重叠片段。布局在预览窗口中看起来很好,但是,当我在设备或模拟器上运行时,appbar会丢失。
主XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".GuiseMainActivity"
android:orientation="vertical">
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:id="@+id/fragmentProps"></fragment>
</RelativeLayout>
片段XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:gravity="top|center"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/propCategoryListView"></ListView>
</LinearLayout>
主类
public class GuiseMainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentProps fragmentProps = new FragmentProps();
fragmentTransaction.replace(android.R.id.content,fragmentProps);
fragmentTransaction.commit();
}}
片段类
public class FragmentProps extends Fragment{
private View PropsFragmentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
PropsFragmentView = inflater.inflate(R.layout.fragment_props, container, false);
String[] propsCategories ={"Recently used", "Popular", "New", "Personalities", "Moustaches / Beard", "Caps/ Hats", "Glasses", "Banners"};
ListAdapter propsCategoryListAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, propsCategories);
ListView propCategoryListView = (ListView) PropsFragmentView.findViewById(R.id.propCategoryListView);
propCategoryListView.setAdapter(propsCategoryListAdapter);
propCategoryListView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String categoryPicked = "You Picked: " + String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(getActivity(), categoryPicked, Toast.LENGTH_LONG).show();
}
});
return PropsFragmentView;
}}
答案 0 :(得分:0)
我找到了解决方案,MainActivity扩展AppCompatActivity然后在onCreate方法中添加这些行:
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.applogo);
getSupportActionBar().setTitle("");
谢谢你们。