1,Gallery滑動的時候,當前的Item圖片會變暗,表面浮一層白膜,緊跟的一個Item的圖片會由一層白膜變成正常狀態,這時只需要設置Gallery的一個屬性即可。。
setUnselectedAlpha(100);設置未選中的Item的透明度爲100.。。。。
2,Activity使用Dialog樣式導致點擊空白處自動關閉的問題
將Activity設置成窗口的樣式實現Dialog或者Popupwindow效果在開發中是很常用的一種方式,在AndroidMenifest.xml中將需要設置的Activity增加android:theme="@android:style/Theme.Dialog"屬性即可。但是窗口化的Activity有個問題就是:點擊窗口空白處Activity會finish。如何避免這個問題呢,辦法如下:
- <resources>
- <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
- <item name="android:windowCloseOnTouchOutside">false</item>
- </style>
- </resources>
- YourActivity.this.setFinishOnTouchOutside(false);
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (event.getAction() == MotionEvent.ACTION_DOWN && isOutOfBounds(this, event)) {
- return true;
- }
- return super.onTouchEvent(event);
- }
- private boolean isOutOfBounds(Activity context, MotionEvent event) {
- final int x = (int) event.getX();
- final int y = (int) event.getY();
- final int slop = ViewConfiguration.get(context).getScaledWindowTouchSlop();
- final View decorView = context.getWindow().getDecorView();
- return (x < -slop) || (y < -slop)|| (x > (decorView.getWidth() + slop))|| (y > (decorView.getHeight() + slop));
- }
3,報異常java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296397, class android.widget.ListView) with Adapter(class com.etaoshi.etaoke.adapter.DishAdapter)]。。
剛開始以爲是view不應該在子線程中做操作,後來修改了依然出問題。。。
最後發現,原來是adapter也不能在子線程中做setEnable(false)操作。。。鬱悶了一下午。。。終於搞定了
4.在做初始化同意條款的時候,用SharePreference來保存狀態值,但是從下載process進去時候,取得的狀態值還是沒改變的值。後來經過查找,才知道是SharePreference跨進程的問題,需要在生成SharePreference時候需要把Sharedpreferences的訪問模式改爲MODE_MULTI_PROCESS,這樣便可以實時讀取Sharedpreferences中修改後的值。另外,把AndroidMainfest.xml中的android:process=":remote"這一行去掉,把Sharedpreferences的訪問模式改爲MODE_PRIVATE,這樣也可以實時讀取。
5.用ScrollView和GridView,listview來畫整個佈局UI
通常ScrollView裏面是不能放GridView或者ListView的,但是如果我們需要有這個需求的話,就需要對GridView或者ListView做一點兒修改,方法如下:
①自定義MyGridView,它繼承自GridView或者ListView
②重寫GirdView或者ListView的OnMesure方法,
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
這樣,當ScrollView和GridView或者Listview一起的時候,就不會出現加載列表數據,然後GridView或者listview中的每個Item的View顯示不出來的問題了。。。