鍍金池/ 問答/ Android問答
爆扎 回答

exact的意思是全匹配,也就是路徑要完全匹配才會路由到指定的組件,比如說
/和/app,在加了exact的時候,他們會路由到兩個組件,如果不加,那么在前面的先會匹配到

護她命 回答

兩個平臺不一樣,和系統(tǒng)有關(guān)系。

尛曖昧 回答

CSS overflow 了解一下

https://developer.mozilla.org...


這樣設置應該是可以滾動的,題主的問題是為什么“山東”下面截掉了吧。把height: 100%;刪掉就好了。

height: 100%;會計算fixmargin之類的偏移,所以很可能直接用的是整個屏幕的高度,這樣的話最下面90px實際上是被擠出屏幕了的。

既然用的是絕對定位,那同時設置topbottom相當于設置了height,所以不需要再次設置了。

局外人 回答
題主說的應該是建議搜索(聯(lián)想輸入)的功能吧

這類問題分兩步走:

  1. 數(shù)據(jù)檢索:
    A. 數(shù)據(jù)來源通常是:本地數(shù)據(jù)庫服務器接口
    B. 不論是本地還是服務器數(shù)據(jù),都是使用Loader來實現(xiàn),它能幫你處理頁面生命周期的很多問題
    C. 如果你用AsyncTask那就需要根據(jù)頁面的生命周期自行管理檢索數(shù)據(jù)的任務(關(guān)閉頁面時的資源釋放、取消界面展示的回調(diào)函數(shù))
  2. 數(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. DialogAlertDialog雖然有各種各樣的限制,但是還有很多方法來達到需求要求的。

影魅 回答

默認瀏覽器:
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)方法

  • handler.postDelayed(runnable, 2000);//每兩秒執(zhí)行一次runnable.

3、采用Handler與timer及TimerTask結(jié)合的方法

  • 定義定時器、定時器任務及Handler句柄
  • 初始化計時器任務
  • 啟動和關(guān)閉定時器

4、采用AlarmManger實現(xiàn)長期精確的定時任務

最后在合適的時候 iv.setVisibility(View.INVISIBLE)或者gone就行了

墨沫 回答

OkHttpUtils是你的封裝類嗎,你不能在里面打印日志看哪個地方有問題嗎

黑與白 回答

在安卓6.0上也遇到同樣問題,請問解決了嗎?