我正在使用Swift,我希望能够在旋转到横向时加载UIViewController,任何人都可以指向正确的方向吗?
我在网上找不到任何东西,文档也有点困惑.
我正在为这个orientationchange事件添加一个监听器:
window.addEventListener('orientationchange', function () {
console.log(window.innerHeight);
});
Run Code Online (Sandbox Code Playgroud)
我需要获得文件的高度orientationchange.但是,事件在旋转完成之前触发.因此,记录的高度反映了实际方向变化之前的状态.
如何在完成方向更改后注册允许我捕获元素尺寸的事件?
我希望获得手机方向,但保持屏幕方向为纵向.因此,无论用户将手机转为横向还是纵向,视图都保持不变,但我可以看到它是转向横向还是纵向.
将活动设置为android:screenOrientation ="portrait"将修复两者但我无法通过以下方式检测到手机方向
public void onConfigurationChanged(Configuration newConfig) {
switch (newConfig.orientation) {
case Configuration.ORIENTATION_PORTRAIT:
Toast.makeText(this, "Portrait", Toast.LENGTH_SHORT).show();
break;
case Configuration.ORIENTATION_LANDSCAPE:
Toast.makeText(this, "Landscape", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
我有3个片段和一个活动.我想在其上启用标签,ActionBar并Fragment为3个标签中的每个标签分配一个标签.如何正确连接?
原始邮政
我有一个使用Google I/O应用程序开发的应用程序作为指南.我已经实现了标签ActionBar.它们似乎正在工作,直到平板电脑的方向发生变化.例如,所有3个选项卡都有Fragment.我可以在它们之间进行切换,但是当我更改方向时,无论Fragment我上次查看的内容都保持可见,但单击选项卡不再更改视图...就像它们已断开连接一样.正如所料,回到原来的方向不会"修复"它.
我已经研究过保存和恢复状态,但是我没有看到它们会有什么帮助.
编辑
模块级别:
Fragment mFragmentA = (Fragment) new AFragmentTab();
Fragment mFragmentB = (Fragment) new BFragmentTab();
Fragment mFragmentC = (Fragment) new CFragmentTab();
Run Code Online (Sandbox Code Playgroud)
我在活动中有类似的东西onCreate:
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
ActionBar.Tab tabA = actionBar.newTab().setText("text a");
ActionBar.Tab tabB = actionBar.newTab().setText("text b");
ActionBar.Tab tabC = actionBar.newTab().setText("text c");
tabA.setTabListener(this);
tabB.setTabListener(this);
tabC.setTabListener(this);
actionBar.addTab(tabA);
actionBar.addTab(tabB);
actionBar.addTab(tabC);
Run Code Online (Sandbox Code Playgroud)
和TabListener这样:
编辑此删除
class MyTabListener implements ActionBar.TabListener {
private Fragment mFragment;
// Called …Run Code Online (Sandbox Code Playgroud) 我正在迁移我正在使用的对话框,Activity.showDialog(DIALOG_ID);以便DialogFragment在android参考中讨论使用该 系统.
在使用回调将一些事件传递回打开对话框的活动/片段时,我的开发过程中出现了一个问题:
这是一个简单对话框的示例代码:
public class DialogTest extends DialogFragment {
public interface DialogTestListener {
public void onDialogPositiveClick(DialogFragment dialog);
}
// Use this instance of the interface to deliver action events
static DialogTestListener mListener;
public static DialogTest newInstance(Activity activity, int titleId, int messageId) {
udateListener(activity);
DialogTest frag = new DialogTest();
Bundle args = new Bundle();
args.putInt("titleId", titleId);
args.putInt("messageId", messageId);
frag.setArguments(args);
return frag;
}
public static void udateListener(Activity activity) {
try {
// Instantiate the NoticeDialogListener …Run Code Online (Sandbox Code Playgroud) android dialog callback orientation-changes android-dialogfragment
似乎API级别13(据我所知,"默默地")引入了对android:configChanges属性的处理方式的更改.
在我的特定情况下,当应用程序清单中的"targetSdkVersion"设置为"13"时,任何配置为内部处理方向更改的活动(例如,不应在屏幕旋转时重新启动)都将始终重新启动,而不管android:configChanges =声明中的"orientation"属性.
将"targetSdkVersion"简单地切换为"12"可恢复预期的行为.
我搜索了API 13发行说明,但没有找到任何关于此类更改的提及.有谁知道API 13(以及可能更晚的API)是否会设计不支持android:configChanges ="orientation",或者是否有另一种方法来实现这一点.
我有一个注册屏幕,用户输入所有注册详细信息,当用户点击"注册"按钮时,我显示进度条(进度条开始旋转),然后将用户带到主屏幕.如果用户旋转当进度条旋转时,进度条被取消.我希望方向不会从potrait变为横向,反之亦然,当进度条可见时(意味着它正在旋转).进度条如何停止方向改变旋转?任何帮助将不胜感激.
由于Android SDK 23允许用户拒绝应用访问某些功能,我想更新我的某个应用以请求权限,如下所述:https://developer.android.com/preview/features/runtime- permissions.html.
在其中一个活动中,我嵌入了一个SupportMapFragment.要使其工作,您需要拥有WRITE_EXTERNAL_STORAGE权限,因此我在启动活动时请求它,这会导致创建权限请求对话框.
现在的问题是,当对话框仍然打开并且我旋转设备时,活动将重新启动并打开一个新的权限请求对话框,而旧的仍然存在.结果是其中两个对话框彼此叠加,其中只有一个是有用的.
有没有办法摆脱首先启动的对话框?
android orientation-changes android-permissions android-6.0-marshmallow
我有底部导航,我也<fragment>用FragmentContainerView它替换了标签,这给了我关于它没有设置 NavController 的错误,然后我发布了这个问题并解决了这个问题,但是当方向改变并选择项目时,我得到了以下错误在底部导航
java.lang.IllegalStateException: 在调用 getGraph() 之前必须先调用 setGraph()
片段容器
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/mobile_navigation" /
Run Code Online (Sandbox Code Playgroud)
寻找片段
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_classes, R.id.navigation_schedule, R.id.navigation_settings
)
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
Run Code Online (Sandbox Code Playgroud) android orientation-changes android-fragments bottomnavigationview
我试图找到一个方法调用,一旦设备的方向发生变化,我就可以锁定它.是否有与didRotateFromInterfaceOrientation相同的东西没有被弃用?