exact的意思是全匹配,也就是路徑要完全匹配才會路由到指定的組件,比如說
/和/app,在加了exact的時候,他們會路由到兩個組件,如果不加,那么在前面的先會匹配到
兩個平臺不一樣,和系統(tǒng)有關(guān)系。
CSS overflow 了解一下
https://developer.mozilla.org...
這樣設置應該是可以滾動的,題主的問題是為什么“山東”下面截掉了吧。把height: 100%;
刪掉就好了。
height: 100%;
并不會計算fix
、margin
之類的偏移,所以很可能直接用的是整個屏幕的高度,這樣的話最下面90px實際上是被擠出屏幕了的。
既然用的是絕對定位,那同時設置top
和bottom
相當于設置了height
,所以不需要再次設置了。
題主說的應該是建議搜索(聯(lián)想輸入)的功能吧
這類問題分兩步走:
Loader
來實現(xiàn),它能幫你處理頁面生命周期的很多問題AsyncTask
那就需要根據(jù)頁面的生命周期自行管理檢索數(shù)據(jù)的任務(關(guān)閉頁面時的資源釋放、取消界面展示的回調(diào)函數(shù))數(shù)據(jù)展示:
A. ListView
or RecyclerView
二選一
B. 當Loader
加載完,它會自行調(diào)用LoaderCallbacks.OnLoadFinished(Loader<D>, D)
,也就是在這個回調(diào)中,將數(shù)據(jù)刷新到列表中
div模擬吧,你用火狐調(diào)試,alert
都不生效了。
而且alert、confrim在各種瀏覽器下樣式不一,還是模擬的好。
你確定你知道fastjson?如果知道,你不應該問出這個問題,如果不知道,請先查閱相關(guān)資料讓自己入門
推薦下支付精靈,手續(xù)費超低,從trpay 轉(zhuǎn)過來的,trpay手續(xù)費高的嚇人了,還動不動就封號。。。
支付精靈
www.payelves.com
請問這個問題解決了么。我也遇到一模一樣的問題了
我不清楚這么做的意義是什么?即使github上真有人提供了這樣的東西。
傳送門:tangxianming/global-dialog
p.s. Dialog
和AlertDialog
雖然有各種各樣的限制,但是還有很多方法來達到需求要求的。
默認瀏覽器:
Intent intent = new Intent(ACTION_VIEW, Uri.parse("網(wǎng)址"));
startActivity(intent);
外部瀏覽器:
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setData(Uri.parse("鏈接"));
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity"); startActivity(intent);
幾個常見
uc瀏覽器":"com.uc.browser", "com.uc.browser.ActivityUpdate"
opera:"com.opera.mini.android", "com.opera.mini.android.Browser"
qq瀏覽器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"
現(xiàn)在最流行的框架組合是RxJava+Retrofit+Dagger2+MVP
clientWidth * devicePixelRatio可得,像iphone現(xiàn)在的devicePixelRatio已經(jīng)到3了。
如果你是做移動設備的響應式處理,用rem,基準js摳阿里的。可以看下這個https://www.w3cplus.com/mobil...
使用rxjava吧
線程操作比較方便
package com.github.rxjavatest
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.GridLayoutManager
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import com.bumptech.glide.Glide
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.BiFunction
class MainActivity : AppCompatActivity() {
lateinit var recyclerView: RecyclerView
val list = arrayListOf<String>()
val adapter = ImageAdapter(list)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView = findViewById(R.id.recyclerView)
recyclerView.layoutManager = GridLayoutManager(this, 3)
recyclerView.adapter = adapter
initImage()
}
private fun initImage() {
val imageGetter = ImageGetter("http://588ku.com/beijing/0-0-pxnum-4-8-0-0-0-1/")
val imgOb = imageGetter.getImageObserable()
val imageGetter2 = ImageGetter("http://588ku.com/beijing/0-0-pxnum-4-8-0-0-0-2/")
val imgOb2 = imageGetter2.getImageObserable()
Observable.zip(imgOb, imgOb2, BiFunction<List<String>, List<String>, List<String>> { t1, t2 ->
val list = arrayListOf<String>()
list.addAll(t1)
list.addAll(t2)
list
}).observeOn(AndroidSchedulers.mainThread())
.subscribe {
list.addAll(it)
adapter.notifyDataSetChanged()
}
}
}
class ImageAdapter(val list: List<String>) : RecyclerView.Adapter<VH>() {
override fun onBindViewHolder(holder: VH?, position: Int) {
holder?.apply {
val src = list[position]
Glide
.with(itemView)
.load(src)
.into(img)
}
}
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): VH {
val view = LayoutInflater.from(parent?.context)?.inflate(R.layout.item_img, parent, false)
return VH(view)
}
override fun getItemCount(): Int {
return list.size
}
}
class VH(itemView: View?) : RecyclerView.ViewHolder(itemView) {
val img: ImageView by lazy { itemView!!.findViewById<ImageView>(R.id.iv_image) }
}
package com.github.rxjavatest
import android.annotation.SuppressLint
import android.util.Log
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import java.util.concurrent.Executors
/**
* Created by cai on 2018/2/12.
*/
class ImageGetter(var url: String) {
fun getImageObserable(): Observable<ArrayList<String>> {
return Observable
.create<Document> {
val doc = Jsoup.connect(url)
.get()
it.onNext(doc)
it.onComplete()
}
.subscribeOn(Schedulers.io())
.map {
it.select("div a img")
}
.map {
val list = arrayListOf<String>()
it.forEach {
val image = it.attr("data-original")
list.add(image)
}
list
}
.observeOn(AndroidSchedulers.mainThread())
}
@SuppressLint("SetJavaScriptEnabled")
companion object {
}
}
val Any.TAG
get() = this.javaClass.simpleName
fun Any.logger(msg: Any?) {
Log.i(TAG, msg.toString())
}
簡單寫了個demo
項目地址
這里用JSoup爬數(shù)據(jù)
然后Rxjava返回數(shù)據(jù)流處理結(jié)果的img src的集合的Observable
在實際Activity中同時獲得兩個Observable,使用zip操作符組合,然后在主線程中將圖片添加到list
刷新adapter
使用Glide加載圖片
https://blog.csdn.net/jiangwe...
可以借鑒加固的思想,把apk的dex塞到殼程序的dex中
不同渠道使用不同的安裝包,都是這樣做的
class Adapter{
//在合適的地方實現(xiàn) linsenter.onclick();
....
private OnClicklinsenter linsenter;
private void setOnclickLinsenter(OnClicklinsenter linsenter){
this.lisenter = linsenter;
}
public interface OnClicklinsenter{
void onClick(String data,int position);
}
}
1、采用Handle與線程的sleep(long)方法
2、采用Handler的postDelayed(Runnable, long)方法
3、采用Handler與timer及TimerTask結(jié)合的方法
4、采用AlarmManger實現(xiàn)長期精確的定時任務
最后在合適的時候 iv.setVisibility(View.INVISIBLE)或者gone就行了
OkHttpUtils是你的封裝類嗎,你不能在里面打印日志看哪個地方有問題嗎
去掉就好了
在安卓6.0上也遇到同樣問題,請問解決了嗎?
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務機構(gòu),發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。