如何使导航抽屉头图片可滚动?

时间:2015-10-23 16:03:48

标签: java android android-listview android-navigation-drawer

我想创建一个导航抽屉,其中包含列表项目上方的个人资料图片。虽然我成功创建了一个,但我有一个问题:首先是标题图片带有圆形图像和背景也是文本Ej Lungay不可滚动。我想让它可滚动,当我向下滚动它的那一刻也必须向下滚动。我提供了下面的图片网址和代码:

enter image description here

这是滑动菜单,其中包含ListView和导航抽屉的标题: fragment_sliding_menu.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="fill_parent"
android:background="@color/white"
android:orientation="vertical" > 

 <RelativeLayout 
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1"
  android:layout_marginTop="0dp"
  android:layout_marginLeft="0dp"
  android:layout_marginRight="0dp"
  android:background="@drawable/background_poly">
    <edu.ejapp.dotalegitstore.RoundedImage
        android:id="@+id/user_pic"
        android:layout_width="70dp"
        android:layout_height="100dp"
        android:layout_marginTop="8dp"
        android:src="@drawable/hoiist" 
        android:layout_marginLeft="8dp"/>
    <TextView 
        android:id="@+id/user_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/user"
        android:layout_below="@id/user_pic"
        android:layout_marginLeft="8dp"
        android:textColor="@color/white"
        /> 
 </RelativeLayout>  

<ListView
 android:id="@+id/list_view"
 android:divider="@color/gray_light"
 android:dividerHeight="0dip"
 android:layout_width="match_parent"
 android:layout_height="0dp"
 android:listSelector="@color/app_main"
 android:layout_weight="1"/>
</LinearLayout>

此处实现了fragment_sliding_menu.xml: SlidingMenuFragment.java

public class SlidingMenuFragment extends Fragment {
List<String> data;
ListView list_view;
SlidingMenuListAdapter adapter;

@SuppressLint("InflateParams")
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_sliding_menu, null);
    setUpView(root);
    return root;
}
void setUpView(ViewGroup root){
    list_view  =  (ListView)root.findViewById(R.id.list_view);
    initList();
    setUpClick();
}
void initList(){
    data = new ArrayList<String>();

    data.add("Home");
    data.add("Arcana");
    data.add("Courrier");
    data.add("Hero Sets");
    data.add("Immortals");

    adapter = new SlidingMenuListAdapter(getActivity(),data);
    list_view.setAdapter(adapter);
}
void setUpClick(){
    list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                case 0:
                    BaseActivity.mTitle="Home";
                break;

                case 1:
                    BaseActivity.mTitle="Arcana";
                break;
                case 2: 
                    BaseActivity.mTitle="Courrier";
                break;
                case 3:
                    BaseActivity.mTitle="Hero Sets";
                break;
                case 4:
                    BaseActivity.mTitle="Immortals";
                break;

                default:
                    BaseActivity.mTitle="Dota Legit Store";
                }
                MainActivity.closeDrawer();
            }
        });
}
}

这是ListView项:lis_view_sliding_menu_items.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="match_parent"
android:layout_marginLeft="8dp"
android:orientation="horizontal" >
<TextView
    android:layout_margin="10dip"
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textColor="@color/gray_dark"
    android:text="" />

</LinearLayout>

然后xml文件在这个类中实现:SlidingMenuListAdapter.java

public class SlidingMenuListAdapter extends BaseAdapter {
List<String>data;
Context context;
public SlidingMenuListAdapter(Context context,List<String> data) {
    this.context = context;
    this.data = data;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return data.size();
}

@Override
public Object getItem(int id) {
    // TODO Auto-generated method stub
    return id;
}

@Override
public long getItemId(int id) {
    // TODO Auto-generated method stub
    return id;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater layoutInflater = LayoutInflater.from(this.context);
    ViewHolder viewHolder;
    if (convertView == null) {
        viewHolder = new ViewHolder();
        convertView = layoutInflater.inflate(R.layout.list_view_sliding_menu_items, null);
        viewHolder.name = (TextView)convertView.findViewById(R.id.name);
        //## Initial Views

        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    //## Setup Data below
    viewHolder = (ViewHolder) convertView.getTag();
    TextView name = viewHolder.name;
    name.setText(data.get(position));
    return convertView;
}

public class ViewHolder {
    TextView name;
}

}

该程序的任何其他功能都正常工作。

我的问题是:如何制作标题(请访问我上面提供的图片)可滚动,如列表项(家庭,奥秘,...)?请帮助我..我是一个Android初学者。任何建议都会被接受。

0 个答案:

没有答案