1、原來是將EditView放到了popupwindow,發(fā)現(xiàn)EditView原有的復(fù)制、粘貼、全選、選擇功能失效了,所以便用DialogFragment代替了popupWindow
直接上代碼
①、先看布局文件
<?xml version="." encoding="utf-"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="bottom"android:orientation="vertical"><LinearLayoutandroid:id="@+id/ll_background_dialog"android:layout_width="match_parent"android:layout_height="dp"android:layout_weight=""android:background="#"android:alpha="."android:orientation="horizontal"></LinearLayout><ScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffcdcdcd"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_quxiao_popup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="dp"android:src="@drawable/popup_comment_no" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="發(fā)言"android:textColor="#"android:textSize="sp" /><ImageViewandroid:id="@+id/iv_write_popup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:padding="dp"android:src="@drawable/popup_commnet_ok" /></RelativeLayout><EditTextandroid:id="@+id/et_comment_popup"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="dp"android:background="#ffffff"android:gravity="top"android:hint="在這里留言"android:minLines="" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="dp"android:layout_marginLeft="dp"android:layout_marginRight="dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:text="文明上網(wǎng)"android:textSize="sp" /></RelativeLayout></LinearLayout></ScrollView></LinearLayout>
②、看自定義diaglogFragment的代碼
import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.app.Fragment;import android.support.v.app.DialogFragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;import com.android.volley.AuthFailureError;import com.android.volley.Request;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.StringRequest;import org.json.JSONException;import org.json.JSONObject;import java.util.HashMap;import java.util.Map;import newairtek.com.app.AppApplication;import newairtek.com.sdnewsandroid.R;import newairtek.com.url.SdNewsUrl;/*** A simple {@link Fragment} subclass.*/@SuppressLint("ValidFragment")public class CustomDialogFragment extends DialogFragment {private ImageView iv_quxiao_popup;//取消按鈕private ImageView iv_write_popup; //確認按鈕private EditText et_comment_popup;//評論內(nèi)容private LinearLayout ll_background_dialog;//容器private boolean isCommenting = false;private String uid;private String id;private String cid;public CustomDialogFragment(String uid, String id, String cid) {this.uid = uid;this.id = id;this.cid = cid;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//這句代碼的意思是讓dialogFragment彈出時沾滿全屏setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Light_DialogWhenLarge_NoActionBar);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.popup_write_comment, null);//讓DialogFragment的背景為透明getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));initView(view);initEvent();return view;}//初始化viewprivate void initView(View view) {iv_quxiao_popup = (ImageView) view.findViewById(R.id.iv_quxiao_popup);iv_write_popup = (ImageView) view.findViewById(R.id.iv_write_popup);et_comment_popup = (EditText) view.findViewById(R.id.et_comment_popup);ll_background_dialog = (LinearLayout) view.findViewById(R.id.ll_background_dialog);}private void initEvent(){//取消iv_quxiao_popup.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dismiss();}});//確認發(fā)送iv_write_popup.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (et_comment_popup.getText().toString().length() > ) {if (!isCommenting) {isCommenting = true;} else {Toast.makeText(getActivity(), "正在評論,請勿重復(fù)操作", Toast.LENGTH_LONG).show();}} else {Toast.makeText(getActivity(), "內(nèi)容不能為空", Toast.LENGTH_SHORT).show();}}});ll_background_dialog.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dismiss();}});}}3、如何使用
FragmentManager manager = getSupportFragmentManager();//區(qū)分是v的Fragment還是app包里面的CustomDialogFragment dialogFragment = new CustomDialogFragment(uid, id, cid);dialogFragment.show(manager, "custom");
效果圖

新聞熱點
疑難解答