我有一個ListView
列表,它運行良好。它是這樣設置的:透明/暗淡的ListView背景 - 我想要在點擊背景時銷燬ListView活動
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true </item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
這是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="0dp"
android:background="@drawable/button_pressed"
android:clickable="false"
android:id="@+id/ListViewLayout" >
<ImageView
android:id="@+id/logo"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="20dp"
android:layout_marginTop="5dp" />
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30dp" >
</TextView>
</LinearLayout>
我也有一個代碼塊,它創建我的ListView
和處理點擊次數:
public class RandomList extends ListActivity {
static final String[] randomList = new String[] {"Name 1", "Name 2", "Name 3", "Logo"};
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new RandomArrayAdapter(this, randomList));
}
protected void onListItemClick(ListView l, View v, int position, long id){
//Get selected items
Log.v("ListView l:", l.toString());
Log.v("View v:", v.toString());
Log.v("Position:", ""+position);
Log.v("ID: ", ""+id);
String selectedValue = (String) getListAdapter().getItem(position);
Bundle bundle = new Bundle();
bundle.putString("Name", selectedValue);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
}
}
現在,與ArrayAdapter
等,發生什麼是我得到一個項目列表。由於只有五個項目,並且由於我爲它設置的樣式,所以大部分屏幕都變暗了(原始的Activity
),並且只有列表居中。問題是,如果有人點擊列表框外的灰色區域,我想完成Activity
。我不能爲我的生活弄清楚如何。
我試圖執行一個OnTouchListener
,但ListView
沒有讓我這樣做,我不知道如何稱呼它爲圍繞TextView
的LinearLayout
容器。我對Android相當陌生,所以請爲我貶低它。
好吧,只要我關閉爲主題設置的樣式,就可以很好地工作。但是當我保持Theme.Transparent時,它失敗。我的猜測是主題導致my_background繞過列表,而不是圍繞整個屏幕(即 - wrap_content而不是fill_parent),從而使我無法在任何地方點擊。 如何讓窗口保持浮動狀態,背景變暗,但整個透明容器在後臺並保持可點擊的能力? – JBega 2012-07-15 20:55:00