Android Fragment布局不在屏幕上

时间:2015-11-26 17:02:10

标签: android android-fragments android-listview android-relativelayout

所以我有一个TabbedActivity,附加了一个类扩展片段,但是这个列表不会留在我的屏幕内。

List item out of screen

正如您所看到的,屏幕底部应该有一个额外的H.

这是我的片段layout.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:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            tools:context=".CreateGameActivity">

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="@dimen/activity_vertical_margin"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginStart="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:text="@string/create_game_participants_tab_title"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/colorPrimary"/>

    <ListView
        android:id="@+id/listParticipants"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView4"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"/>

    <TextView
        android:id="@+id/textNoParticipants"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_alignStart="@+id/textView4"
        android:layout_alignTop="@+id/listParticipants"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:text="@string/no_participants"/>

</RelativeLayout>

通过以下onCreateView()方法

加载
View view = inflater.inflate(R.layout.fragment_create_game_participants_layout, container, false);

ListView listParticipants = (ListView) view.findViewById(R.id.listParticipants);
TextView textNoParticipants = (TextView) view.findViewById(R.id.textNoParticipants);

List<String> list = new LinkedList<>();
if (savedInstanceState != null && savedInstanceState.containsKey("participants"))
    list.addAll((List<String>)savedInstanceState.getSerializable("participants"));
else {
    SharedPreferences prefs = context.getSharedPreferences("participants", Context.MODE_PRIVATE);
    list.addAll(prefs.getStringSet("lastParticipants", new HashSet<>()));
}

ArrayAdapter adapter = new ArrayAdapter(context, android.R.layout.simple_list_item_1, android.R.id.text1, list);
listParticipants.setAdapter(adapter);

SwipeDismissListViewTouchListener touchListener = new SwipeDismissListViewTouchListener(
        listParticipants,
        new SwipeDismissListViewTouchListener.DismissCallbacks {
            boolean canDismiss(int position) {
                return true;
            }

            void onDismiss(ListView listView, int[] reverseSortedPositions) {
                for (int position : reverseSortedPositions)
                    list.removeAt(position);
            }
        });
listParticipants.setOnTouchListener(touchListener);
listParticipants.setOnScrollListener(touchListener.makeScrollListener());

return view;

使用构造函数创建片段,并通过

加载活动onCreate()
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_game_activity_tabbed)

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
supportActionBar.setDisplayHomeAsUpEnabled(true);

SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the ViewPager with the sections adapter.
viewPager.setAdapter(mSectionsPagerAdapter);

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager)

最后我的选项卡活动layout.xml被定义为这样

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="janniskaiser.matchplanner.CreateGameActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/appbar_padding_top"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:layout_scrollFlags="scroll|enterAlways">

        </android.support.v7.widget.Toolbar>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_ok" />

</android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:1)

工具栏app:layout_scrollFlags="scroll|enterAlways"属性更改为app:layout_scrollFlags="enterAlways"。这应该解决它。

相关问题