我如何设置它,使应用程序只在纵向模式下运行?我希望在应用程序运行时禁用横向模式。如何通过编程实现呢?
当前回答
类似于Graham Borland的答案……但是如果你不想的话,你似乎不需要创建Application类…只需在项目中创建一个Base Activity
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
并且在你想使用Potrait Mode的地方扩展这个类而不是AppCompatActivity
public class your_activity extends BaseActivity {}
其他回答
在config.xml中的<widget>下添加<preference name="orientation" value="portrait" />对我来说很有效。
(其他解决方案要么在我的设备上不起作用,要么在构建过程中被覆盖,要么在构建过程中给出了弃用错误。)
好吧, 我试了所有的答案,但在旧版本的安卓系统上都不行。 所以,最终的解决方案是将这段代码添加到setContentView上面的每个活动:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
将android:screenOrientation="portrait"添加到AndroidManifest.xml中的活动中。例如:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
在你的Manifest中输入:
<activity
android:screenOrientation="portrait"
<!--- Rest of your application information ---!>
</activity>
对于Xamarin用户:
如果你把你所有的活动扩展到一个BaseActivity,只需添加:
this.RequestedOrientation = ScreenOrientation.Portrait;
这样问题就解决了。如果你想要任何特定的活动在横向覆盖OnActivityCreated。为:
this.Activity.RequestedOrientation = ScreenOrientation.Landscape;
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件