Как сделать такое же поведение виджета?
есть приложение google play. Я делаю подобное приложение, ну как подобное, парсер кода с расцветкой. И что-то мне подскажывает что они не используют Html.Parse. Я использую Html.Parse. то есть парсю код и перевожу в html вид. У них виджет можно двигать по диагонали, как это можно сделать? Может у них кастомный виджет какой то? Я использую TextView. я сделал вот так, но в таком случае можно двигать либо сначала вверх-вниз, либо влево-вправо. И если текста мало, не занимает весь экран, то scroll кончается в конце текста, в середине экрана телефона, как эту проблему решить?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#3c3c3c"
android:orientation="vertical"
tools:context=".MainActivity">
<RelativeLayout
android:id="@+id/relative"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ProgressBar
android:id="@+id/progressbar"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
<androidx.appcompat.widget.Toolbar
android:background="@color/back_toolbar"
android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar"
android:elevation="4dp"
android:id="@+id/toolbar_view_file"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:ellipsize="end"
android:scrollHorizontally="true"
android:fontFamily="@font/terminus"
android:overScrollMode="always"
android:id="@+id/text_view"
android:textSize="18sp"
android:background="#3c3c3c"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
Ответы (1 шт):
Автор решения: Ann Developer
→ Ссылка
Вот к примеру кусок реализации драг&дропа TextView:
textView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
start_x=event.getX();
start_y=event.getY();
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
FrameLayout.LayoutParams params =
new FrameLayout.LayoutParams(1000, 2000);
params.setMargins(
(int)(event.getX()-start_x),
(int)(event.getY()-start_y),
0, 0);
textView.setLayoutParams(params);
break;
}
return false;
}
});