如果我在HTML页面中有一个非滚动标题,则固定在顶部,具有已定义的高度:
有没有办法使用URL锚点(#fragment部分)让浏览器滚动到页面中的某个点,但是在没有JavaScript帮助的情况下仍然尊重固定元素的高度?
http://foo.com/#bar
Run Code Online (Sandbox Code Playgroud)
WRONG (but the common behavior): CORRECT: +---------------------------------+ +---------------------------------+ | BAR///////////////////// header | | //////////////////////// header | +---------------------------------+ +---------------------------------+ | Here is the rest of the Text | | BAR | | ... | | | | ... | | Here is the rest of the Text | | ... | | ... | +---------------------------------+ +---------------------------------+
我正在使用DialogFragments做很多事情:从列表中选择项目,输入文本.
将值(即字符串或列表中的项)返回给调用活动/片段的最佳方法是什么?
目前我正在制作调用活动实现DismissListener,并为DialogFragment提供对活动的引用.然后,Dialog调用OnDimissactivity中的方法,activity将从DialogFragment对象中获取结果.非常混乱,因为DialogFragment失去对活动的引用,它不能用于配置更改(方向更改).
谢谢你的帮助.
有些用户报告,如果他们使用通知栏中的快速操作,他们就会收到一个强制关闭.
我在通知中显示了一个快速操作,它调用了"TestDialog"类.在按下"贪睡"按钮后的TestDialog类中,我将显示SnoozeDialog.
private View.OnClickListener btnSnoozeOnClick() {
return new View.OnClickListener() {
public void onClick(View v) {
showSnoozeDialog();
}
};
}
private void showSnoozeDialog() {
FragmentManager fm = getSupportFragmentManager();
SnoozeDialog snoozeDialog = new SnoozeDialog();
snoozeDialog.show(fm, "snooze_dialog");
}
Run Code Online (Sandbox Code Playgroud)
错误是 *IllegalStateException: Can not perform this action after onSaveInstanceState*.
IllegarStateException被触发的代码行是:
snoozeDialog.show(fm, "snooze_dialog");
Run Code Online (Sandbox Code Playgroud)
该类正在扩展"FragmentActivity",而"SnoozeDialog"类正在扩展"DialogFragment".
以下是错误的完整堆栈跟踪:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:127)
at com.test.testing.TestDialog.f(TestDialog.java:538)
at com.test.testing.TestDialog.e(TestDialog.java:524)
at com.test.testing.TestDialog.d(TestDialog.java:519)
at com.test.testing.g.onClick(TestDialog.java:648)
at android.view.View.performClick(View.java:3620)
at …Run Code Online (Sandbox Code Playgroud) 如何在 Android 片段中声明菜单?我以前使用的方法现在已被弃用。
起初:
override fun onCreateView(...): View {
setHasOptionsMenu(true)
}
Run Code Online (Sandbox Code Playgroud)
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
this.menu = menu
inflater.inflate(R.menu.menu, this.menu)
}
Run Code Online (Sandbox Code Playgroud) 您好我正在使用Android应用程序,我用它DialogFragment来显示对话框,但它的宽度非常小.我怎样才能达到这个宽度fill_parent呢?
public class AddNoteDialogFragment extends DialogFragment {
public AddNoteDialogFragment() {
// Empty constructor required for DialogFragment
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().setTitle(getString(R.string.app_name));
View view = inflater.inflate(R.layout.fragment_add_note_dialog,
container);
return view;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
// request a window without the title
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}
}
Run Code Online (Sandbox Code Playgroud)
fragment_add_note_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<EditText
android:id="@+id/addNoteEditText"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) 我正在使用a DialogFragment,虽然我已成功设置图像以在关闭时关闭(即关闭)对话框,但当用户点击对话框外的任何地方时,我很难找到解除对话框的方法,就像它一样正常的对话.我以为会有某种
dialogFragment.setCanceledOnTouchOutside(true);
Run Code Online (Sandbox Code Playgroud)
打电话,但我没有在文档中看到.
这有可能DialogFragment吗?或者我在错误的地方寻找?我尝试拦截"父母"活动中的触摸事件,但除了没有得到任何触摸事件外,它对我来说似乎不对.
似乎FragmentContainerView不能立即使用?
<androidx.fragment.app.FragmentContainerView
class="androidx.navigation.fragment.NavHostFragment"
android:id="@+id/fragment_nav_host"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_app" />
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码fragment-ktx:1.2.0-rc01,我总是收到此错误:
Caused by: java.lang.IllegalStateException: Activity ...MainActivity@797467d does not have a NavController set on 2131296504
Run Code Online (Sandbox Code Playgroud)
仅使用<fragment>作品和 AFAIK,它应该被替换为FragmentContainerView.
我是不是遗漏了什么,或者有人可以FragmentContainerView用作NavHostFragment?
非常感谢!
我有一个浏览片段的viewpager.我的FragmentPagerAdapter子类在getItem方法中创建了一个看似浪费的新片段.是否有一个FragmentPagerAdapter相当于convertView在listAdapter,使我重新使用已创建的片段?我的代码如下.
public class ProfilePagerAdapter extends FragmentPagerAdapter {
ArrayList<Profile> mProfiles = new ArrayList<Profile>();
public ProfilePagerAdapter(FragmentManager fm) {
super(fm);
}
/**
* Adding a new profile object created a new page in the pager this adapter is set to.
* @param profile
*/
public void addProfile(Profile profile){
mProfiles.add(profile);
}
@Override
public int getCount() {
return mProfiles.size();
}
@Override
public Fragment getItem(int position) {
return new ProfileFragment(mProfiles.get(position));
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个FragmentActivity应该显示内部类的类Dialog.但我需要成功static.Eclipse让我可以用来抑制错误@SuppressLint("ValidFragment").如果我这样做是不好的风格,可能的后果是什么?
public class CarActivity extends FragmentActivity {
//Code
@SuppressLint("ValidFragment")
public class NetworkConnectionError extends DialogFragment {
private String message;
private AsyncTask task;
private String taskMessage;
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
message = args.getString("message");
}
public void setTask(CarActivity.CarInfo task, String msg) {
this.task = task;
this.taskMessage = msg;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(message).setPositiveButton("Go back", new …Run Code Online (Sandbox Code Playgroud) 我的布局包括如下片段:
<fragment
android:id="@+id/mainImagesList"
android:name="com.guc.project.ImagesList"
android:layout_width="match_parent"
android:layout_height="62dp"
android:layout_below="@+id/addimagebutton"
android:layout_weight="1"
android:paddingTop="55dp" />
Run Code Online (Sandbox Code Playgroud)
现在,我需要获取此片段并进行转换,以便我可以操作它并显示更新.我该怎么办?!
编辑:我想我已经设法获得片段,但是当我更改一些变量时,更改不会出现!