在Android中,解決ExpandableListView加入ScrollView內,導致ExpandableListView無法展開同時也失去捲動功能

在Android中,如果您將ExpandableListView加入ScrollView內,例如下面這樣的Layout

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.test.testscorllapplication.ScrollingActivity"
    tools:showIn="@layout/activity_scrolling">

    <ExpandableListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mainListView"
        tools:ignore="ObsoleteLayoutParam" />

</android.support.v4.widget.NestedScrollView>

你可能會發現ExpandableListView縮成一團無法展開,同時也失去捲動功能。

如果您想解決這個問題請在ScrollView中加入 android:fillViewport="true"設定,並在ListView中加入android:nestedScrollingEnabled="true",也就是修改成以下結構:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.test.testscorllapplication.ScrollingActivity"
    tools:showIn="@layout/activity_scrolling">

    <ExpandableListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mainListView"
        android:nestedScrollingEnabled="true"
        tools:ignore="ObsoleteLayoutParam" />

</android.support.v4.widget.NestedScrollView>
這樣就解決了 ExpandableListView縮成一團無法展開,同時也失去捲動功能的問題了。
張貼在 Uncategorized | 發表留言

在Android舊版本使用GCM服務,造成超過64K方法

使用GCM服務撰寫 GCM,如果您使用Android5.0以下版本,應該會遇到超過64K 方法。

相關問題討論:

http://blog.darkwing.co/2016/02/%E9%96%8B%E5%95%9Fmultidexenabled%E6%89%80%E9%80%A0%E6%88%90%E7%9A%84crash/

http://stackoverflow.com/questions/39779208/unable-to-get-provider-com-google-firebase-provider-firebaseinitprovider-at-api

解法請見:

https://developer.android.com/studio/build/multidex.html

 

張貼在 Uncategorized | 發表留言

Android CalendarView外部函示庫

最近寫Android App需要CalendarView,但官方的android.widget.CalendarView有點悲劇。

僅有基本的功能,對!就是你想的那樣,只能讓你選個黃道吉日。問題是,我需要的遠不只這樣。

比方,我在展開CalendarView時,必須僅列出可以選的日子,也就是並不是每個日子都能讓使用者選入。其次,不能選的日子當然應該整個 Block住,以免使用者誤觸。

想來想去,當然還是後來還是用了其他外部的Library。

https://github.com/prolificinteractive/material-calendarview

沒錯,就是下載後直接選擇"import Module"這樣就完成了。

不過哩,因為它需要一些gradle變數。因此得另外在原來的gradle.properties加入:

GROUP=com.prolificinteractive
VERSION_NAME=1.4.2
VERSION_CODE=17

POM_PACKAGING=aar
POM_NAME=Material CalendarView
POM_ARTIFACT_ID=material-calendarview
POM_URL=https://github.com/prolificinteractive/material-calendarview
POM_DESCRIPTION=A Material design back port of Android's CalendarView
POM_SCM_URL=https://github.com/prolificinteractive/material-calendarview
POM_SCM_CONNECTION=scm:git@github.com:prolificinteractive/material-calendarview.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:prolificinteractive/material-calendarview.git
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=prolificinteractive
POM_DEVELOPER_NAME=Prolific Interactive
POM_DEVELOPER_EMAIL=android@prolificinteractive.com
張貼在 Uncategorized | 發表留言

Android 更新/重載 Activity下面的所有fragment的方法

參考:

http://kaihgcode.blogspot.tw/2013/09/viewpager-fragment.html

// 更新全部的fragment的方法!
// PagerAdapter adapter = mViewPager.getAdapter();
mViewPager.setAdapter(mSectionsPagerAdapter);
mSectionsPagerAdapter.notifyDataSetChanged();

 

張貼在 Uncategorized | 發表留言

Java Filter防禦XSS跨網站腳本攻擊

 

Pattern.compile(“[\"\’=\\(\\)\\[\\]\\{\\}?%&*\\s\\.]*(.*?)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);

對,就是公布出來。我的網站很簡單只做了這樣的過濾而已。

 

張貼在 Uncategorized | 發表留言

Tomcat 8 加入 Microsoft Service服務後,增加JMX服務

參考:

http://blog.chinaunix.net/uid-20449851-id-2369842.html

經過修改註冊表的方法來加入JMXRemote參數,在[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\ITSM\Parameters\Java]下修改Options參數

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false

 

張貼在 Uncategorized | 發表留言

遠端指令方式重新啟動 Microsoft Tomcat Server

@echo off
sc.exe \\127.0.0.1 stop Tomcat6
REM ping 127.0.0.1 -n 10
timeout /t 10 /nobreak
sc.exe \\127.0.0.1 start Tomcat6

 

張貼在 Uncategorized | 發表留言