桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 8

154 阅读1分钟

前文: ​​​​​​桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 7 导航:

桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The End 导航页及收尾工作

四、查单词功能的实现。

(1)取消Bottom Navigation Activity模板的顶栏空白。

android:paddingTop="?attr/actionBarSize" 删除即可取消Bottom Navigation Activity模板的顶栏空白。

(2)实现安卓9.0后webview载入网页。

在manifest添加

android:usesCleartextTraffic="true" 即可实现。

(3)以OneFragment为查询单词界面,进行UI布局。

fragment_one.xml

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="schemas.android.com/apk/res/and…" xmlns:app="schemas.android.com/apk/res-aut…" xmlns:tools="schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" app:layout_constraintGuide_percent="0.75">

<EditText
    android:id="@+id/editTextTextPersonName3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:ems="12"
    android:hint="@string/search"
    android:imeOptions="actionSearch"
    android:inputType="textPersonName"
    android:minHeight="48dp"
    android:singleLine="true"
    app:layout_constraintEnd_toStartOf="@+id/guideline11"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/guideline9" />

<ImageButton
    android:id="@+id/imageButton7"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:backgroundTint="#00FFFFFF"
    android:contentDescription="@string/TODO"
    android:src="@drawable/ic_baseline_search_24"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="@+id/guideline11"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline9"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.03" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_begin="312dp"
    app:layout_constraintGuide_percent="0.7" />

<ImageView
    android:id="@+id/imageView8"
    android:layout_width="50dp"
    android:layout_height="50dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.506"
    app:layout_constraintStart_toStartOf="@+id/guideline11"
    app:layout_constraintTop_toBottomOf="@+id/imageButton7"
    app:layout_constraintVertical_bias="0.0"
    app:srcCompat="@drawable/ic_baseline_close_24" />

<WebView
    android:id="@+id/webview"
    android:layout_width="409dp"
    android:layout_height="629dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

需要用到的矢量图:

@drawable/ic_baseline_close_24 @drawable/ic_baseline_search_24 (4) 在Manifest添加权限。(互联网权限)

(5)锁定导航栏,防止软键盘将导航栏顶起。

在Manifest的activity里:

即可解决。

(6)编辑OneFragment的代码。

OneFragment.java

package com.example.peachdictionary;

import android.os.Bundle;

import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment;

import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.webkit.WebView; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView;

public class OneFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_one, container, false);
    return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    WebView webView = getView().findViewById(R.id.webview);

    ImageButton imageButton7 = getView().findViewById(R.id.imageButton7);
    imageButton7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getdata();
        }
    });

    //软键盘
    EditText editText = getView().findViewById(R.id.editTextTextPersonName3);
    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                getdata();
            }
            return false;
        }
    });

    ImageView imageView8 = getView().findViewById(R.id.imageView8);
    imageView8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //链接一张白色图片
        webView.loadUrl("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage.110go.com%2Fupload%2Ftpk%2F180743034.jpg&refer=http%3A%2F%2Fimage.110go.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1642493799&t=0b0f3e6ac47ea94df25b112ff7ea53a6");
        }
    });

}

public void getdata() {
    EditText editText = getView().findViewById(R.id.editTextTextPersonName3);
    String str = editText.getText().toString();

    WebView webView = getView().findViewById(R.id.webview);
    webView.loadUrl("http://m.youdao.com/dict?le=eng&q="+str);
}

}

实现效果:

———————————————— 版权声明:本文为CSDN博主「SEMHAQ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/weixin_6062…