小编rad*_*zio的帖子

Android异构gridview像pinterest?

是否有可能在Android上创建类似布局的pinterest GridView?我想创建图库使用,GridView但我不确定它是不是很好的解决方案.我不想创建三个LinearLayouts(我认为这个解决方案不好:Android中的Pinterest样式listview或gridview)

有任何想法吗 ;)?

在此输入图像描述

java android pinterest

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

Android棒棒糖共享元素转换闪烁/闪烁

我在Lollipop的共享元素转换中看到奇怪的事情.共享元素在开始制作动画之前就会闪烁(请参阅视频https://www.youtube.com/watch?v=DCoyyC_S-9A)

我不知道为什么会这样.然而,当我添加<item name="android:windowSharedElementsUseOverlay">false</item>到我的主题时,我看不到闪烁,但过渡看起来并不好(看起来只有一半是动画"隐藏"动画的后半部分).

其他过渡设置:

<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
Run Code Online (Sandbox Code Playgroud)

我正在使用ActivityCompat和ActivityOptionsCompat开始活动:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(ActivityMain.this,
                        new Pair<View, String>(playButton, getString(R.string.translation_control_button)),
                        new Pair<View, String>(findViewById(R.id.playerImage), getString(R.string.translation_artwork)));

ActivityCompat.startActivity(this, pendingIntent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)

第一项活动:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:id="@+id/main_container">

        <include layout="@layout/toolbar"/>

        <FrameLayout
            android:id="@+id/activity_main_fragment_container"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"></FrameLayout>

        <TableLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:padding="7dp"
            android:stretchColumns="*"
            android:id="@+id/player_toolboxTable"
            android:background="?colorPrimary">

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/player_toolbox">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:clickable="true"
                    android:id="@+id/player_fav"
                    android:src="@drawable/rating_not_important"
                    android:onClick="playerFav"
                    android:background="@drawable/button_selector_semi_white"
                    />

                <ImageView
                    android:src="@drawable/av_pause_over_video"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:clickable="true"
                    android:id="@+id/player_play"
                    android:onClick="playerPlay"
                    android:background="@drawable/button_selector_semi_white"
                    android:transitionName="@string/translation_control_button"
                    /> …
Run Code Online (Sandbox Code Playgroud)

android android-transitions android-5.0-lollipop activity-transition shared-element-transition

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

Jetpack Compose - 滚动到列中的可组合焦点

我有这样的用户界面:

val scrollState = rememberScrollState()
        Column(
            modifier = Modifier
                .fillMaxSize(1F)
                .padding(horizontal = 16.dp)
                .verticalScroll(scrollState)
        ) {

            TextField(...)
 // multiple textfields
             TextField(
                        //...
                        modifier = Modifier.focusOrder(countryFocus).onFocusChanged {
                            if(it == FocusState.Active) {
                               // scroll to this textfield
                            }
                        },
                    )
         }
Run Code Online (Sandbox Code Playgroud)

我在此列中有多个 TextFields,当其中一个聚焦时,我想将 Column 滚动到它。scrollState 中有一个方法,scrollState.smoothScrollTo(0f)但我不知道如何获得聚焦的 TextField 位置。

更新:

看来我找到了一个可行的解决方案。我用过onGloballyPositioned并且有效。但我不确定这是否是解决此问题的最佳方法。

var scrollToPosition = 0.0F

TextField(
   modifier = Modifier
    .focusOrder(countryFocus)
    .onGloballyPositioned { coordinates ->
        scrollToPosition = scrollState.value + coordinates.positionInRoot().y
    }
    .onFocusChanged {
    if (it == FocusState.Active) {
        scope.launch { …
Run Code Online (Sandbox Code Playgroud)

android-jetpack-compose android-jetpack-compose-text

8
推荐指数
2
解决办法
1427
查看次数

WPF ListboxItem和ContextMenu

我有这样的代码:

<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Vertical" 
                    ContextMenuService.ShowOnDisabled="True">
            <StackPanel.ContextMenu>
                <ContextMenu>
                    <MenuItem Command="Delete" Click="DeleteEvent">      
                    </MenuItem>
                </ContextMenu>
            </StackPanel.ContextMenu>
                <TextBlock Text="{Binding EventName}">
            </TextBlock>        
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用.我的上下文菜单被禁用(它正在显示,但我无法点击它,因为它被禁用).我已经读过这个问题与选择问题有关但我没有找到任何解决方案.你有什么想法?

.net c# wpf xaml

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

Android Lollipop - 通知中的涟漪效应

我想在Android Lollipop的通知中为ImageView/ImageButton添加涟漪效果.我在Google Play音乐上看到了这种情况.但是,我在其他视图中使用的解决方案不适用于通知.

我在drawable-v21中创建了RippleDrawable

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="#33000000">
</ripple>
Run Code Online (Sandbox Code Playgroud)

并将此drawable设置为ImageView的背景

<ImageView android:id="@+id/notification_play_button"
           tools:src="@drawable/av_play_over_video"
           android:layout_width="32dp"
           android:layout_height="32dp"
           android:background="@drawable/button_selector_semi_black"
            />
Run Code Online (Sandbox Code Playgroud)

但它根本行不通.你对如何实现这种效果有任何想法吗?

android android-notifications rippledrawable android-5.0-lollipop

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

Android - MediaPlayer + PowerManager.PARTIAL_WAKE_LOCK

我正在通过WiFi和3G网络创建收听广播流的应用程序.

我使用的是原生MediaPlayer.不幸的是,当屏幕变黑并且手机进入待机模式时,媒体播放器开始停止播放音乐.

我已经添加了:

mp.setWakeMode(myContext, PowerManager.PARTIAL_WAKE_LOCK);
Run Code Online (Sandbox Code Playgroud)

但几乎没有任何变化(只是停止播放,并在接下来的3秒钟内再次开始播放..)只有FULL_WAKE_LOCK和SCREEN_DIM_WAKE_LOCK按预期工作......

在我的设备中,我设置了阻止wifi睡眠的选项.

我试图添加我的天堂WAKE_LOCK

        mp.setWakeMode(this.getBaseContext(), PowerManager.PARTIAL_WAKE_LOCK);
        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "testa");
        wl.acquire();
Run Code Online (Sandbox Code Playgroud)

但它没有奏效.只有FULL_WAKE_LOCK有效,但我不想用屏幕上的电池耗尽:(.

我有Android 2.2的HTC Desire.您有任何想法如何防止MediaPlayer在电话处于待机模式时停止播放互联网广播流吗?

java android media-player android-mediaplayer

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

使用Netty在WebSockets上进行MQTT?

我想在Websockets上使用MQTT.在Netty中使用Websockets非常简单:

ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("codec-http", new HttpServerCodec());
pipeline.addLast("aggregator", new HttpObjectAggregator(65536));
pipeline.addLast("handler", new WebSocketServerHandler());
Run Code Online (Sandbox Code Playgroud)

我找到了基于Netty的MQTT经纪人(moquette).

 NettyMQTTHandler handler = new NettyMQTTHandler();
 ServerBootstrap b = new ServerBootstrap();
            b.group(m_bossGroup, m_workerGroup)
             .channel(NioServerSocketChannel.class) 
             .childHandler(new ChannelInitializer<SocketChannel>() { 
                 @Override
                 public void initChannel(SocketChannel ch) throws Exception {
                    ChannelPipeline pipeline = ch.pipeline();
                    //pipeline.addFirst("metrics", new BytesMetricsHandler(m_metricsCollector));
                    pipeline.addFirst("idleStateHandler", new IdleStateHandler(0, 0, Constants.DEFAULT_CONNECT_TIMEOUT));
                    pipeline.addAfter("idleStateHandler", "idleEventHandler", new MoquetteIdleTimoutHandler());
                    //pipeline.addLast("logger", new LoggingHandler("Netty", LogLevel.ERROR));
                    pipeline.addLast("decoder", new MQTTDecoder());
                    pipeline.addLast("encoder", new MQTTEncoder());
                    pipeline.addLast("metrics", new MessageMetricsHandler(m_metricsCollector));
                    pipeline.addLast("handler", handler);
                 }
             })
             .option(ChannelOption.SO_BACKLOG, 128)
             .option(ChannelOption.SO_REUSEADDR, true)
             .childOption(ChannelOption.SO_KEEPALIVE, true); 
Run Code Online (Sandbox Code Playgroud)

所以在理论上我应该能够通过Websocket发送MQTT,但我不知道是否可以使用Netty?有没有任何线索或想法如何做到这一点?我应该使用MessageToMessageCodec和BinaryWebSocketFrame吗?

干杯!

java websocket netty mqtt

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

如何使用Android AppBarLayout,工具栏和TabLayout与片段

我有使用Toolbar的NavigationDrawer和AppBarLayout的活动.不幸的是,当我在子片段中使用TabLayout时,我看到工具栏和TabLayout之间的阴影.是否可以在TabLayout下方显示阴影?我不想将TabLayout移动到我的活动中,因为我只在一个片段中使用它.

我可以看到这个问题的解决方案:

  • 禁用工具栏和TabLaout上的高程(不喜欢它)
  • 从活动中删除工具栏并将其移动到片段中

您有什么想法如何在我的场景中正确使用它?

错误的投影

android android-fragments android-design-library androiddesignsupport

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

如何测试 Firebase 动态链接

我想测试 Firebase 动态链接。

第一个场景很简单。我可以使用 adb 发送正确的意图:

adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://myapp.app.goo.gl/shortlink"
Run Code Online (Sandbox Code Playgroud)

我只是想知道如何在没有 Google Play 商店的情况下测试应用程序安装过程的动态链接。我只想执行类似的测试,这可以使用branch.io:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.my.app/io.branch.referral.InstallListener --es "referrer" "link_click_id=4052874849443426113"
Run Code Online (Sandbox Code Playgroud)

Firebase 动态链接可以吗?

android firebase firebase-dynamic-links

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

如何使用JavaPoet生成调用超类构造函数的构造函数

我想生成一个使用 JavaPoet 扩展其他类的类。

例如我有这个类:

@MyAnnotation
public class ClassA {
  public ClassA(String paramA, int paramB) {
     // some code
  }
} 
Run Code Online (Sandbox Code Playgroud)

我想生成这样的新类:

public class Generated_ClassA extends ClassA {
  public Generated_ClassA (String paramA, int paramB) {
     super(paramA, paramB);
  }
} 
Run Code Online (Sandbox Code Playgroud)

但是,我在 JavaPoet 中没有看到任何现成的 API 来创建调用超类构造函数的构造函数。如何做到这一点以及最佳实践是什么?

java annotation-processing javapoet annotation-processor

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

Android:单屏上的很多活动?

我正在为Android设备创建我的第一个应用程序,我遇到了一个挑战......我想在我的应用程序的每个屏幕上创建固定的底部栏(类似于来自tunein收音机的栏).

但是我不知道如何制作固定在每个活动上的条形图(条形图在加载新活动时不加载但在每个应用程序屏幕上都是永久性的).我不想<include>在每个活动中使用我的酒吧(我已经尝试过这个解决方案,但我的酒吧正在加载活动).

这可能是活动组,只有中间活动正在改变吗?如果是这样我怎么能这样做?

PS.你推荐什么书或教程;-)?

tunein radio bottom和top bar image#1

java android activitygroup android-fragments android-activity

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