1

所以我有一个TabbedActivity与一个额外的类扩展片段,但列表不会留在我的屏幕。Android的片段布局不在屏幕

List item out of screen

正如你可以看到应该是在屏幕的底部附加小时。

这里是我的片段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> 
+0

它应该向下滚动直到你的'H'。 –

+0

它应该是的,但正如你可能从我屏幕底部的浅蓝色半弧看到的那样,它没有。 – succcubbus

+0

数据来自哪里?你在哪里存储你的包/共享偏好? –

回答

1

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