小编use*_*882的帖子

Dagger和ButterKnife Android之间的区别

谁能指出DaggerButterknife之间的区别?我知道Butterknife是一个视图注入库,而Dagger是一个依赖注入库.但是在线文档对我来说似乎有些开销.根据Butterknife的文档,您也可以进行非活动注射,这是Dagger的作用吗?还是我误解了什么?

android dagger butterknife

64
推荐指数
3
解决办法
3万
查看次数

波纹对形状可绘制的影响

试图在这里做一些非常简单的事情,并查找了一堆SO资源,但无济于事.我试图在一个使用drawable类型的背景的按钮上获得涟漪效果shape drawable.相关文件:

background_button:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="1px"
        android:color="#80ffffff" />
    <solid android:color="@android:color/transparent" />
</shape>
Run Code Online (Sandbox Code Playgroud)

ripple.xml的内部drawable-v21文件夹:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
    <item android:drawable="@drawable/background_button"/>
</ripple>
Run Code Online (Sandbox Code Playgroud)

Button.xml:

   <Button
                    android:id="@+id/login_button"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:layout_weight="1"
                    android:paddingTop="10dp"
                    android:paddingBottom="10dp"
                    android:background="@drawable/ripple"


 />
Run Code Online (Sandbox Code Playgroud)

这里有什么问题.谢谢!

xml android android-5.0-lollipop

16
推荐指数
6
解决办法
2万
查看次数

锁屏检测主页按钮

我最近下载了ACDisplay锁屏应用程序:

https://play.google.com/store/apps/details?id=com.achep.ac显示

该应用程序在我的设备上显示覆盖图,同时也检测home button click到该覆盖图,activity因此我无法绕过锁定屏幕。它还可以完全隐藏recent button非根设备上的。那怎么可能?

我已经通过以下链接:

检测Android中的主页按钮按下

如何检测用户在活动中按HOME键?

如何检测用户在活动中按HOME键?

以及用于旧版本AndroidOR的所有解决方案,他们都说home无法检测到按钮单击,因为它可以被恶意应用程序使用。

该应用程序如何做到这一点?

有人可以共享示例代码/应用程序,说明如何防止用户在成功通过身份验证之前退出锁定屏幕应用程序吗?

谢谢。

android android-homebutton

15
推荐指数
1
解决办法
727
查看次数

在 Flutter Canvas 中对 Paint 对象使用渐变

我可以使用以下示例绘制半圆Flutter how to draw semicircle (half circle)

但是,该Paint对象似乎只接受 a Color(using Paint.color)。我想添加一个RadialGradientLinearGradient作为Color. 那可能吗?

canvas flutter flutter-layout flutter-canvas

14
推荐指数
1
解决办法
6842
查看次数

选择器与动作Swift 4

Swift的新手.我下面有两个片段:

NotificationCenter.default.addObserver(self, 
    selector:#selector(ViewController.notificationReceived), 
    name: Notification.Name(rawValue: name), object: nil)

@objc func notificationReceived(notification:Notification){
    let x = notification.userInfo!
    print("\(x["name"]!)")

}
Run Code Online (Sandbox Code Playgroud)

最后

let x:UITapGestureRecognizer = UITapGestureRecognizer(target: self, 
    action: #selector(tapped))

self.addGestureRecognizer(x)

func tapped(){
    print("tapped")

    self.delegate!.theViewTapped()

}
Run Code Online (Sandbox Code Playgroud)

为什么这个notificationCenter?我应该提供参数的@objc标签,selector但不提供UITapGestureRecognizer动作参数?

SelectorAction inSwift有什么区别?

selector ios swift swift4

12
推荐指数
1
解决办法
2万
查看次数

在自定义列表视图中显示联系号码和联系人姓名

谁能告诉我如何在自定义列表视图中显示电话号码和联系人姓名?代码粘贴在下面

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class AddContacts extends Activity implements OnClickListener {

    ListView list;
    Cursor cursor;
    SimpleCursorAdapter adapter;
    String phoneNumber;
    Button AddNumber;
    EditText number1;
    EditText number2;
    EditText number3;
    String contact1;
    String contact2;
    CheckBox checkBox;
    String contact_name;

    static final String TAG = "In AddContacts";

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview);
        AddNumber = (Button) …
Run Code Online (Sandbox Code Playgroud)

android listview simplecursoradapter

5
推荐指数
1
解决办法
3万
查看次数

Gradle交换jniLibs资源基于构建风格

我试图根据它的a 或a 来交换res/raw文件夹和jniLibs/armeabi文件夹中的一些资源.我目前也有两种产品口味.release buildTypedebug buildType

build.gradle文件:

apply plugin: 'com.android.application'

android {
    dexOptions {
        preDexLibraries = false
    }

    compileSdkVersion 21
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.test"
        minSdkVersion 17
        targetSdkVersion 22
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

    productFlavors{
        phone{
            applicationId "com.example.testPhone"
        }
        tablet{
            applicationId "com.example.testTablet"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    sourceSets{
        release{
            res.srcDirs = ['androidRelease/res/raw']
        }
    }
}

dependencies {
    compile project(':facebook')

}
Run Code Online (Sandbox Code Playgroud)

是用sourceSet正确的方法吗?如果是,应该创建什么文件夹,以便它根据 …

android gradle android-gradle-plugin

5
推荐指数
1
解决办法
4448
查看次数

MockWebserver和Retrofit 2.0

尝试使用单元测试Retrofit 2.0响应MockWebServer.我有网络服务器设置,但问题发生在我试图传递模拟json文件作为响应.为了说明,我的文件夹结构是:

src->test->java->package_name->class_name.java

src->test->resources->list_success.json
Run Code Online (Sandbox Code Playgroud)

我的单元测试:

@Before
public void setUp() throws Exception{
    MockitoAnnotations.initMocks(this);
    server = new MockWebServer();
    serviceHelper = new ServiceHelper();

}
@Test
public void testEventBusIdPostedOnSuccessfulServiceCall() throws Exception {
    server.start();
    server.enqueue(new MockResponse().setResponseCode(200).setBody(getStringFromFile(RuntimeEnvironment.application, "list_success.json")));
    MainActivity.URL = server.url("/").toString();

    serviceHelper.getIndividualData("Store","7");
    verify(eventBus).post(any());
}

@After
public void tearDown() throws Exception{
    server.shutdown();
}
Run Code Online (Sandbox Code Playgroud)

一切正常.使用模拟JSON触发async的改装调用.但是,回调永远不会被触发.我尝试在实际的服务实现中放入一个倒计时锁存器,但也没有任何反应.

    public void getIndividualData(String item, String number) {

            Call<DataList> dataList = RestClient.get().getList(item, number);
            dataList.enqueue(new Callback<DataList>() {
                @Override
                public void onResponse(Response<DataList> response, Retrofit retrofit) {
                    /*data persistence should take …
Run Code Online (Sandbox Code Playgroud)

java android unit-testing retrofit2

5
推荐指数
0
解决办法
3105
查看次数

NSData init?(contentsOf url:URL)从Swift 2迁移到Swift 3

iOS/Swift新手.我正在尝试将项目(通过该NSData init()方法简单地从URL中提取内容)从Swift 2迁移到Swift 3.原始代码如下所示:

let loadedImageData = NSData(contentsOfURL: imageURL)
            dispatch_async(dispatch_get_main_queue()) {
                if imageURL == user.profileImageURL {
                    if let imageData = loadedImageData  {
                        self.profileImageView?.image = UIImage(data: imageData)
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

Swift 3迁移:

 let loadedImageData = NSData(contentsOf: imageURL as URL)
            DispatchQueue.main.async {
                if imageURL == user.profileImageURL {
                    if let imageData = loadedImageData  {
                        self.profileImageView?.image = UIImage(data: imageData as Data)
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

我不确定为什么我们需要将NSData返回值转换为a URL然后Data在Swift 3中加载图像时再次将该返回转换为类型.我们将原始数据分配给loadedImageData两个版本中的变量.为什么铸造呢?似乎该UIImage init()方法需要Swift 3中的数据对象.但是对于Swift 2,没有相同的转换.这是为什么?

谢谢您的帮助.

ios swift2 swift3

3
推荐指数
1
解决办法
1万
查看次数

在颤动中单击下拉菜单时显示带有下拉菜单选项的底部工作表

我有一个DropDown显示各种选项的。当前行为将选项显示为DropdownMenuItem.

如何将 切换DropdownMenuItemBottomSheet显示 中所有选项的a DropDown

当前代码:

DropdownButtonHideUnderline(
  child: Container(
    color: Color.fromRGBO(216, 216, 216, 0.33),
    padding: const EdgeInsets.fromLTRB(32, 8, 16, 8),
    child: DropdownButton<String>(
      hint: Text("TEST DROPDOWN"),
      items: <String>['A', 'B', 'C', 'D'].map((String value) {

        // this crashes
        return showModalBottomSheet(context: context, builder: (builder) {
          return Container(
            child: Text('Hello From Modal Bottom Sheet'),
            padding: EdgeInsets.all(40.0),
          );
        });

        // this works
        return new DropdownMenuItem<String>(
          value: value,
          child: new Text(value),
        );

      }).toList(),
      ...
Run Code Online (Sandbox Code Playgroud)

编辑:我试图在下拉单击时显示类似于 iOS 日期选择器的内容。

dropdown flutter bottom-sheet flutter-layout

3
推荐指数
1
解决办法
9021
查看次数

自定义 Painter 类在 Stack flutter 中不可见

出于某种原因,Stack小部件不会显示Container带有CustomPaint.

但是,如果从 中删除Stack,它可以正常工作。我在这里缺少什么?

class _DemoNavBar extends State<DemoNavBar> {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
        home:
        Stack(
          children: <Widget>[
            Container(child: CustomPaint(painter: CurvePainter()))
      ],
    )
    );
  }
}

class CurvePainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    var paint = Paint();
    paint.color = Colors.green[800];
    paint.style = PaintingStyle.fill;

    var path = Path();

    path.moveTo(0, size.height - 100); 

    path.lineTo(size.width * 0.5, size.height - 100); 
    path.quadraticBezierTo(size.width * 0.7, size.height, size.width …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-canvas

1
推荐指数
1
解决办法
1174
查看次数

MKPolyLine Swift 4

我正在尝试学习MapKit并将其添加MKPolyLine为覆盖。几个问题:

  1. MKPolyLine和之间有什么区别MKPolyLineView。什么时候应该使用哪一个?

  2. 对于MKPolyLineinit方法,参数之一是?的泛型type(MKMapPointUnsafePointer。不太确定那是什么意思。查找各种SO问题,似乎我们应该将CLLocationCoordinate2Dstruct 的内存地址作为参数传递,但这对我不起作用。

    let testline = MKPolyline()
    let coords1 = CLLocationCoordinate2D(latitude: 52.167894, longitude: 17.077399)
    let coords2 = CLLocationCoordinate2D(latitude: 52.168776, longitude: 17.081326)
    let coords3 = CLLocationCoordinate2D(latitude: 52.167921, longitude: 17.083730)
    let testcoords:[CLLocationCoordinate2D] = [coords1,coords2,coords3]
    
    
    let line = MKPolyline.init(points: &testcoords, count: testcoords.count)
    
    mapView.add(testline)
    
    Run Code Online (Sandbox Code Playgroud)

我不断收到"& is not allowed passing array value as 'UnsafePointer<MKMapPoint>" argument"

怎么了

mapkit mkpolyline swift swift4

0
推荐指数
1
解决办法
3391
查看次数