小编Div*_*ash的帖子

将recyclerview焦点转移到列表中的最后一个元素

我正在使用recyclerview在聊天窗口中显示消息.但是,在编辑新消息时,回收器视图焦点应位于最后一个元素上.我希望有一些方法可以将recyclerview的焦点转移到最后一个元素而不是第一个元素.

android android-layout android-recyclerview

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

AutoCompleteTextView未完成括号内的单词

我已经实现AutoCompleteTextView如下:

MainActivity.java

...
    public static String[] myData=new String[]{"Africa (AF)","America (AFM)","Apple (AMP)"};
    text=(AutoCompleteTextView)v.findViewById(R.id.first_state);
    ArrayAdapter adapter = new ArrayAdapter(getActivity(),R.layout.autocompletetextview_row,R.id.textViewItem,myData);

    text.setAdapter(adapter);
    text.setThreshold(1);
    text.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) {

            selected_station = (String)parent.getItemAtPosition(position);
            //TODO Do something with the selected text
        }
    });
Run Code Online (Sandbox Code Playgroud)

布局AutoCompleteTextView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    android:padding="10dp" >
    <TextView
        android:id="@+id/textViewItem"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="Item name here..."
        android:textColor="#000000"
        android:textSize="20sp" />
 </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

当我输入类似"af .."时,它显示非洲(AF)选择但不是美国(AFM).

数据只是一个示例数据.这不是我AutoCompleteTextView只用于3件物品.

编辑:当我删除括号时,它正常工作.但我需要保留括号以供进一步使用.

android autocompletetextview android-arrayadapter

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

禁用单击图表

我在一个带有线性布局的滚动视图中使用多个mpandroidchart.

问题是我想在图表中禁用任何类型的水平/垂直滚动,因为当我向下滚动到下一个图表时会导致问题.我已经尝试将clickable属性设置为false但这没有帮助.库中是否有任何方法可以禁用图表上的任何触摸事件?我希望它是完全静态的.

xml android android-layout android-studio mpandroidchart

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

获取用于调整视频大小的元数据信息

我正在使用 Exoplayer 在 TextureView 上流式传输视频。

我需要获取视频的宽度、高度和旋转以保持纵横比。

为此,我正在使用FFmpegMediaMetadataRetriever

问题是检索元数据需要相当多的时间,因为数据源是一个 URL。

任何替代更快的解决方案?

android exoplayer

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

从BottomSheetDialog获取BottomSheetBehaviour

这是我的BottomSheetDialog布局.我内部也有网格布局.网格布局的滚动不正确.我的意思是它只在BottomSheetDialog的展开状态下滚动.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_behavior="@string/bottom_sheet_behavior"
    >

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/view_padding_medium"
        android:gravity="center_vertical">

        <ImageView
            android:layout_width="@dimen/profile_image"
            android:layout_height="@dimen/profile_image"
            android:src="@drawable/icon" />

        <TextView
            android:id="@+id/title1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/view_padding_medium"
            android:text="@string/smart_action_share"
            android:textColor="@color/white"
             />
    </LinearLayout>



    <GridView
        android:id="@+id/gridView11"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3"
        >

    </GridView>


</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我创建底部对话框的方式:

BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(context);
        LayoutInflater inflater = ((Activity) Constants.getContext()).getLayoutInflater();

        View view = inflater.inflate(R.layout.dialog_share1, null);

        bottomSheetDialog.setContentView(view);

    final GridView grid = (GridView) view.findViewById(R.id.gridView11);

    CustomAdapter adapter = new CustomAdapter (context);
    grid.setAdapter(adapter);

    bottomSheetDialog.show();
Run Code Online (Sandbox Code Playgroud)

如何访问对话框的行为,以便我可以修复网格布局滚动或有任何其他方法来修复它?

只是为了使一切清晰:每次都应该启用网格视图滚动,而不管底页的状态如何.

android grid-layout android-layout bottom-sheet

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

使用retryWhen()重试observable

我正在实现一个observable,在延迟5s后重试错误.我正在使用改造网络.我面临的问题是,当API返回错误时会有很多重试.我想仅在5秒后重试,但是重试以疯狂的速度发生(几乎是一秒钟的三次).知道为什么吗?

userAPI.getUsers()
       .filter { it.users.isNotEmpty() }
       .subscribeOn(Schedulers.io())
       .retryWhen { errors -> errors.flatMap { errors.delay(5, TimeUnit.SECONDS) } }
       .observeOn(AndroidSchedulers.mainThread())
       .subscribe({}, {})
Run Code Online (Sandbox Code Playgroud)

其中userAPI.getUsers()返回一个可观察的.

疯狂的API请求数量:

08-13 12:31:31.308 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:31.825 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:32.370 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:32.897 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:33.436 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:33.952 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:34.477 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo
08-13 12:31:35.020 26277-26453/com.app.user.dummy D/OkHttp: --> GET https://userapi.com/foo …
Run Code Online (Sandbox Code Playgroud)

java android observable rx-java rx-java2

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