如何合并SlideDrawer和ArrayAdapter

时间:2011-12-24 01:26:57

标签: android android-layout android-arrayadapter

New York Times app似乎有一个SlideDrawer,可以降低ListAdapter。这是我想要完成的效果。我有一个自定义listadapter工作正常,我有一个单独工作正常的slidedrawer。它们是两个独立的Activities。我想合并这两个,以便在listadapter上有一个滑动。

我已经在SetContentView上尝试ListActivity,将ArrayAdapter实现到包含幻灯片抽屉的xml文件中,但我得到了一个强制关闭。我认为这是因为listadapter本质上是一堆相同xml layout的微小膨胀视图,我试图同时运行两个布局。我想也许答案在于xml文件是如何布局的,但老实说也不知道。

无论如何这里是代码:

import android.view.View;
import android.net.Uri;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.SlidingDrawer;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;

public class BandApp extends ListActivity {
/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

//here is where I have tried setting slidedrawer layout 
    setContentView(R.layout.slidedrawer)

    Activity activity = this;
    activity.setTitle("@$@#$$@$#$");


    final String[] values = {"Litem0","Litem1","Litem2","Litem3","Litem4","Litem5"};

    MyAdapter Adapter = new MyAdapter(this, values);
    setListAdapter(Adapter);

和xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="85dp"
>
<TextView
android:layout_height="0dp"
android:layout_width="0dp"
android:id="@+id/textlayout"
/>
</LinearLayout>

就像我说的那样,它们都在那里工作得很好,但我想知道如何合并两者并获得纽约时报应用程序的效果。谢谢。

这是我正在谈论的图像。顶部的“用餐和葡萄酒”拉下来,所以我猜它是一个下滑的人?:

enter image description here

1 个答案:

答案 0 :(得分:0)

滑动抽屉可能只来自底部或右侧。它不能来自顶部。您可以查看此question以获取一些可能的解决方案。

然而,您拥有的代码甚至不能为您提供正常的滑动抽屉。你需要的是你的XML中的ListView和SlidingDrawer(带句柄等),所有这些都应该在允许事物重叠的布局中,比如RelativeLayout。然后在您的活动中,您将其设置为内容视图。

有一个食谱here,它会使ListView位于SlidingDrawer之上,有时候会很棘手