Q群 欢迎加入AndroLua官方2群,群号码:621400904
发言
其实这个圈圈是由Android Support library搞的,
Support库中包含一些目前不稳定/不适用与所有设备的东东,它不会被打包到android.jar中,
所有使用它的应用(java程序)都需要自己准备吼
AndroLua包涵support库中部分 ,但不是全部成员。比如DrawerLayout是有的,
但SwipeRefreshLayout不在Androlua默认运行环境里,需要自己准备支持库。🐔
怎么准备呢,我钦定AndroidStudio.
只需要新建一个项目,随便包名,添加依赖
compile "com.android.support:v4:<ver> or +"
就行了。构建项目(建议使用Release,优化了的字节码运行更快),将生成目录找到的
classes.dex 重命名 support.dex,move到那个需要用的lua同级目录。
然后简单 compile "support.dex" 即可。请注意不是jar,是dex(odex).
google官方钦定了DalvikVM,随便拿Dalvik搞其它JVM的事情可能要爆炸🌚
之后,简单import下就够了。
SwipeRefreshLayout是有文档的。
谷歌官方文档:
https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html
Alua文档
--设置下拉刷新监听事件
swipeRefreshLayout.setOnRefreshListener(this);
--设置进度条的颜色
swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.BLUE, Color.GREEN);
--设置圆形进度条大小
swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
--设置进度条背景颜色
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.DKGRAY);
--设置下拉多少距离之后开始刷新数据
swipeRefreshLayout.setDistanceToTriggerSync(50);
建议大家在使用前处理一下这个类,让它可以像id.OnRefresh=function...这样调用
或者自己建个辅助程序,hack on setContentView,etc.
举个例子(Androlua):
require 'import'
import "android.widget.*"
import "android.view.*"
compile "support.dex"
import "android.support.v4.widget.*"
import "android.support.v4.widget.SwipeRefreshLayout.*"
--import "java.lang.annotation.Annotation"
lay={
SwipeRefreshLayout;
id="s";
{
LinearLayout;
orientation="vertical";
{
Button;
text="钦定AndroidStudio";
id="foobtn";
};
{
Button;
id="hobtn";
text="如果能在构建外部dex库的时候开优化最吼滴";
};
};
};
activity.setContentView(lay)
foobtn.onClick=function()
s.setRefreshing(false)
end
hobtn.onClick=function()
activity.finish()
--os.exit(0)
end
--[[s.OnRefresh=function()
Toast.makeText(activity,"haha",Toast.LENGTH_SHORT)
end]]
refresh=luajava.new(SwipeRefreshLayout.OnRefreshListener,
{
onRefresh = function ()
Toast.makeText(activity,"吼吼吼,全"..base64.decode("5ouJ5Ye65Y6757ut5LqG"),3).show()
s.setRefreshing(false)
end
}
)
--Toast.makeText(activity,type(refresh),3).show()
s.setOnRefreshListener(refresh)
发言
其实这个圈圈是由Android Support library搞的,
Support库中包含一些目前不稳定/不适用与所有设备的东东,它不会被打包到android.jar中,
所有使用它的应用(java程序)都需要自己准备吼
AndroLua包涵support库中部分 ,但不是全部成员。比如DrawerLayout是有的,
但SwipeRefreshLayout不在Androlua默认运行环境里,需要自己准备支持库。🐔
怎么准备呢,我钦定AndroidStudio.
只需要新建一个项目,随便包名,添加依赖
compile "com.android.support:v4:<ver> or +"
就行了。构建项目(建议使用Release,优化了的字节码运行更快),将生成目录找到的
classes.dex 重命名 support.dex,move到那个需要用的lua同级目录。
然后简单 compile "support.dex" 即可。请注意不是jar,是dex(odex).
google官方钦定了DalvikVM,随便拿Dalvik搞其它JVM的事情可能要爆炸🌚
之后,简单import下就够了。
SwipeRefreshLayout是有文档的。
谷歌官方文档:
https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html
Alua文档
--设置下拉刷新监听事件
swipeRefreshLayout.setOnRefreshListener(this);
--设置进度条的颜色
swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.BLUE, Color.GREEN);
--设置圆形进度条大小
swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
--设置进度条背景颜色
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.DKGRAY);
--设置下拉多少距离之后开始刷新数据
swipeRefreshLayout.setDistanceToTriggerSync(50);
建议大家在使用前处理一下这个类,让它可以像id.OnRefresh=function...这样调用
或者自己建个辅助程序,hack on setContentView,etc.
举个例子(Androlua):
require 'import'
import "android.widget.*"
import "android.view.*"
compile "support.dex"
import "android.support.v4.widget.*"
import "android.support.v4.widget.SwipeRefreshLayout.*"
--import "java.lang.annotation.Annotation"
lay={
SwipeRefreshLayout;
id="s";
{
LinearLayout;
orientation="vertical";
{
Button;
text="钦定AndroidStudio";
id="foobtn";
};
{
Button;
id="hobtn";
text="如果能在构建外部dex库的时候开优化最吼滴";
};
};
};
activity.setContentView(lay)
foobtn.onClick=function()
s.setRefreshing(false)
end
hobtn.onClick=function()
activity.finish()
--os.exit(0)
end
--[[s.OnRefresh=function()
Toast.makeText(activity,"haha",Toast.LENGTH_SHORT)
end]]
refresh=luajava.new(SwipeRefreshLayout.OnRefreshListener,
{
onRefresh = function ()
Toast.makeText(activity,"吼吼吼,全"..base64.decode("5ouJ5Ye65Y6757ut5LqG"),3).show()
s.setRefreshing(false)
end
}
)
--Toast.makeText(activity,type(refresh),3).show()
s.setOnRefreshListener(refresh)
🙈又钦定了一下,
require 'import'
--require 'base64' 无效,不知道为什么🐸
import "android.widget.*"
import "android.view.*"
import "android.util.Base64"
compile "support.dex"
import "android.support.v4.widget.*"
import "android.support.v4.widget.SwipeRefreshLayout.*"
lay={
SwipeRefreshLayout;
id="s";
{
LinearLayout;
orientation="vertical";
{
Button;
text="钦定AndroidStudio";
id="foobtn";
};
{
Button;
id="hobtn";
text="如果能在构建外部dex库的时候开优化最吼滴";
};
};
};
activity.setContentView(lay)
foobtn.onClick=function()
s.setRefreshing(not s.Refreshing)
end
hobtn.onClick=function()
activity.finish()
end
refresh=luajava.new(SwipeRefreshLayout.OnRefreshListener,
{
onRefresh = function ()
Toast.makeText(activity,String(Base64.decode("5ZC85ZC85ZC877yM5YWo5ouJ5Ye65Y6757ut5LqGIfCfkLg=",Base64.DEFAULT)),3).show()
s.setRefreshing(false)
end
}
)
s.setOnRefreshListener(refresh)
require 'import'
--require 'base64' 无效,不知道为什么🐸
import "android.widget.*"
import "android.view.*"
import "android.util.Base64"
compile "support.dex"
import "android.support.v4.widget.*"
import "android.support.v4.widget.SwipeRefreshLayout.*"
lay={
SwipeRefreshLayout;
id="s";
{
LinearLayout;
orientation="vertical";
{
Button;
text="钦定AndroidStudio";
id="foobtn";
};
{
Button;
id="hobtn";
text="如果能在构建外部dex库的时候开优化最吼滴";
};
};
};
activity.setContentView(lay)
foobtn.onClick=function()
s.setRefreshing(not s.Refreshing)
end
hobtn.onClick=function()
activity.finish()
end
refresh=luajava.new(SwipeRefreshLayout.OnRefreshListener,
{
onRefresh = function ()
Toast.makeText(activity,String(Base64.decode("5ZC85ZC85ZC877yM5YWo5ouJ5Ye65Y6757ut5LqGIfCfkLg=",Base64.DEFAULT)),3).show()
s.setRefreshing(false)
end
}
)
s.setOnRefreshListener(refresh)