这是一个使用DialogFragment 做成的dialog样式
其中没有使用ViewPager,而是用了RecyclerView做成了Viewpager的样式
具体使用:
package com.ly.fulldialog_master;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showDialog(View view) {
GiftDialog.showDialog(this);
}
}
新增加activity交互的方式:
- activity的不用管,就那么几行
- fragment的有2种方法:
/**
* @param activity
* @param type 1 callback 2 startActivityForResult
*/
public static void toFragmentFather(Activity activity, String type) {
Intent intent = new Intent(activity, FragmentFatherActivity.class);
intent.putExtra("type", type);
activity.startActivity(intent);
}
对应方法是:
/**
* show the fragment with callback
*
* @param view
*/
public void toCallBack(View view) {
FragmentFatherActivity.toFragmentFather(MainActivity.this, "1");
}
/**
* show the fragment with startActivityForResult
*
* @param view
*/
public void toForResult(View view) {
FragmentFatherActivity.toFragmentFather(MainActivity.this, "2");
}
type是1的话就是使用自定义interface来做交互
type是2的话就是通过startActivityFragment来做交互
对应的类是**GiftDialogInFragment**,
核心代码有注释:
tvGiftSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type.equals("2")) {
// startActivityForResult config
Intent intent = new Intent();
intent.putExtra("money", "礼物的id");
//获得目标Fragment,并将数据通过onActivityResult放入到intent中进行传值
getTargetFragment().onActivityResult(1, Activity.RESULT_OK, intent);
// end of startActivityForResult config
} else if (type.equals("1")) {
// callback config
if (onGiftItemClickListener != null) {
onGiftItemClickListener.onGiftSelectedListener("礼物的id");
}
}
// end of callback config
}
作者QQ:137544897 如看不懂可以联系。
#此致
如果需要自定义什么方法的话 可以修改默认的适配器。