导航:首页 > 操作系统 > androidfragmentui

androidfragmentui

发布时间:2023-06-03 11:29:51

android中Fragment怎样刷新UI

在activity 的onActivityResult 调虚携罩用fragment 的onActivityResult 方法隐汪,
例如getSupportFragmentManager().getFragments().get(mViewPager.getCurrentItem()).onActivityResult(requestCode, requestCode, data);
然差闹后在fragment的onActivityResult做处理

② Android中Fragment怎样刷新UI

刷新UI要在主颂绝线程,Fragment和Activity是类似的,所以在要刷新UI的地方handler发者樱扒送消息,在主线程中定义的首昌hanler处理消息,更新UI,建议看下安卓的安卓handler机制。

③ 如何使用Android UI Fragment开发分页界面

需要在activity视图层级结构中为fragment视图安排位置,创建fragment容器布局:
step1/3 创建Fragment容器布局
activity_crime.xml
<FragmeLayout xmlns:android:"https://schemas.android.com/apk/res/android"
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

step2/3 创建UI Fragment
但此时,activity还未托管fragment,所以代码运行后UI看不到任何内容。接下来需要编写代码,创建UI Fragment,覆写fragment的生命周期函数(几乎对应到activity的声明周期函数)。 创建fragment和创建activity步骤相同:定义布局文件、创建fragment子类、在代码中关联布局文件声明的组件。
public class CrimeFragment extends Fragment {
private Crime mCrime;
private EditText mTitleField;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCrime = new Crime();
}

@Override
// 由onCreateView方法生成fragment的视图
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_crime, parent, false);
// 调用View.findViewById(int)
mTitleField = (EditText)v.findViewById(R.id.crime_title);
// 监听器方法设置和activity一样
mTitleField.addTextChangedListener(new TextWathcer() {
public void onTextChanged(...) {}
public void beforeTextChanged(...) {}
public void afterTextChanged(...) {}
});

return v;
}
}

step3/3 添加UI Fragment到FragmentManager
但此时运行,仍然看不到fragment,还需要将fragment的视图放置到FrameLayout容器中,以添加给activity。所以并没有“start fragment”这个概念。 FragmentManager类负责管理fragment并将它们的视图添加到activity的视图层级结构中。fragment transactions(事务)被用来添加、移除、附加、分离或替换fragment队列中的fragment。这是使用fragment在运行时组装和重新组装用户界面的核心方式。FragmentManager管理着fragment transactions的回退栈。
import android.support.v4.app.Fragment
public class CrimeActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime);

FragmentManager fm = getSupportFragmentManager();

// 使用R.id.fragmentContainer的容器视图资源ID,向FragmentManager请求获取fragment。如要获取的fragment在队列中已经存在,FragmentManager随即会将之返还。
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);

// 如指定容器视图资源ID的fragment不存在,则fragment变量为空值。
// 这时应创建一个新的CrimeFragment,并创建一个新的fragment transaction用来把新建的fragment添加到队列中。
if (fragment == null) {
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
}
}
}

FragmentManager保持fragment与activity的状态一致,但fragment方法究竟是在activity方法之前还是之后调用的这一点是无法保证的。

阅读全文

与androidfragmentui相关的资料

热点内容
云服务器宕机概率 浏览:227
在线买药用什么app知乎 浏览:810
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:598
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:738
想在上海租房子什么app好 浏览:184
编译程序各部分是必不可少的吗 浏览:885
编程不超过十行 浏览:763
数电编译器的作用 浏览:337
时间算法与现在有什么区别 浏览:163
7zip解压后没文件夹 浏览:903
为什么安卓送玫瑰ios收不到 浏览:10
美篇文章加密是什么意思 浏览:83
ilasm编译dll 浏览:39
呼吸灯单片机程序 浏览:954
linux域socket 浏览:250
qq分身怎么样才能加密 浏览:457