0

我有一个问题,我用HashMap填充ListView,但是当数据出现时,ListView出现在ActionBar上。如果这有所作为,我也会使用Fragments。下面是ActionBar,ListView适配器的代码和我的问题的屏幕截图。让我知道是否有更多您需要的信息。Android ListView滚动到ActionBar

ListView的代码:

SimpleAdapter adapter = new SimpleAdapter(ForumIndex.getInstance(), categories,android.R.layout.simple_list_item_1, new String[] { "title" }, new int[] { android.R.id.text1 }); 
setListAdapter(adapter); 

动作条代码:

ActionBar actionBar = getSupportActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

ActionBar.Tab tab = actionBar.newTab() 
     .setText("Categories") 
     .setTabListener(new ActionBarTabListener(this, Categories.class.getName())); 
actionBar.addTab(tab); 

tab = actionBar.newTab() 
     .setText("Most Recent") 
     .setTabListener(new ActionBarTabListener(this, MostRecent.class.getName())); 
actionBar.addTab(tab); 

MostRecent类布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center"> 

    <ListView 
     android:id="@id/android:list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

样本图像:

enter image description here

+0

在旧版本的ActionBar(Compat或Sherlock)在内容视图上方浮动。 –

+0

是的,只有在兼容模式下使用设备时才会出现浮动。你知道如何解决这个问题吗? –

+0

嗯,目前我能想到的是将listview顶部边距设置为操作栏的高度。例如:检索操作栏高度,并将与顶部边距相同的值添加到列表视图的布局参数中。不要忘记检查API级别以确保您确实需要设置边距。 –

回答

2

我解决了这个问题。问题是我添加我的片段的方式是使用Android内容而不是使用我自己的布局。

我改变:

fragmentTransaction.add(android.R.id.content, fragment); 

要:

fragmentTransaction.add(R.id.content_frame, fragment); 
+0

我有同样的问题,目前正在将android.R.id.content作为第一个参数传递给fragmentTransaction.add。但是,从您发布的材料(除非我错过了某些内容)中不清楚您的替换ID是从哪里来的,它不是您发布的任何布局元素的ID ...您能详细说明吗?太感谢了! –

0

你只需要定义填充是在为ListView android:paddingTop