【发布时间】:2013-04-11 04:07:25
【问题描述】:
我在我的项目中设置了listfragment。但似乎我的片段无法用我的适配器正确处理。这是因为MyListAdapter 中的Context context。如果我点击纠正它。它变为MenuFragment menuFragment。但是在更改之后,MyListAdapter 出错了。所以我纠正它。它变为Context context。如果我再次纠正它,它仍然会继续下去。它像那样循环。
注意:我想要实现的是带有图标的 ListFragment。就像我之前的另一个问题一样(但不幸的是没有人回答它)。
public class MenuFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String [] proMenu ={ "Homies", "Best Nearby", "Coupon" , "Profile" , "History" , "", "Setting" ,
"About" , "Sign Out"};
setListAdapter(new MyListAdapter(this, proMenu));
}
@Override
public void onListItemClick(ListView lv, View v, int position, long id) {
Fragment newContent = null;
switch (position) {
case 0:
newContent = new ColorFragment();
break;
case 1:
Intent intent7 = new Intent();
intent7.setClass(getActivity(), Home.class);
intent7.putExtra("index", position);
startActivity(intent7);
break;
编辑:这是我的布局。现在完全好了。我只需要调整 textview 和线性布局,这样单词就不会被切成两半。但我面临另一个问题。就像背景图像相互堆积一样。这是我布局中的 xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:cacheColorHint="#00000000"
android:background="@drawable/menu_drawer">
<ImageView
android:id="@+id/row_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="10dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/row_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:padding="10dp"
android:text="Medium Text"
android:textSize="20dp"
android:textAppearance="@android:style/TextAppearance.Medium" />
</LinearLayout>
如果我从linear layout 中删除这个android:background="@drawable/menu_drawer"。这将是完美的背景。不互相堆积。但是当我在列表中滑动时,背景变得疯狂,它消失了,并在其中显示了一些黑色背景。就像 listview android:cacheColorHint="#00000000" 的问题一样。我已经在linear layout 中添加了cachecolor。但它仍然显示那些黑色背景。就像这样。
我知道问题出在哪里。这是因为默认背景是黑色的。但我不知道如何解决它。
EDIT2:黑色问题已解决。
已解决。
【问题讨论】:
-
首先,您使用
android:layout_height="50dp"作为行高,因此文本将被剪切是正常的,因为它无法适应该高度(尤其是当您使用 20dp 大小时(使用 sp 代替))。使用wrap_content作为行高。其次,cacheColorHint属性需要用于ListView而不是行背景(您可以在代码中设置)。 -
谢谢。你救了我很多。实际上我有 1 个最后的问题。如何在历史和背景之间留出空间。所以 3 列表将在底部(设置、关于和退出)。
-
如果那是某种菜单,那么您最好将
ListView替换为包含行的LinearLayout,这样您就可以根据需要将它们分开。您仍然可以使用ListView来计算屏幕所需的确切空间并添加一个具有该高度的额外空行。 -
谢谢。我更新了问题:D 实际上是它的菜单。 jfeinstein10 的幻灯片菜单
-
我说过要插入一个空行,您可以为其计算适当的高度。您真的应该就此提出一个新问题。
标签: android android-listview slider android-listfragment android-adapter